Get exception details from a Azure Monitor Workbook - azure-application-insights

In application insights I can click on an exception and find nicely formatted information about it if I click on it.
This could look like this:
I would like to archive the same in an Azure Workbook. Here I can display all my exceptions with the KQL Term "Exceptions".
With the column settings I was hoping to be able to create a link to the Application insights page that shows me the same result like in the picture above.
I use this configuration:
Now I have a link, but when I click it there is just an empty pane:
Is there anything I misunderstand?
How do I need to configure my column settings to get a direct link to the Exception details like in clicking on the same item in Application Insights?

While not super obvious, the info bubble for the link settings shows:
The value in the column is expected to be an itemId of an exception telemetry item.
So as long as your query returns the itemId field, you can map that in the column settings:
(also, iirc, if the query returns a timestamp column, the details view will try to narrow down its search to just use a range around that time instead of trying to query a larger amount of time to find an item with that id)
Edit to add: if you are using thee Log Analytics based schema, AppExceptions the field is there but missing from documentation and the schema, there is an _ItemId field that is this field. I'm working with the App Insights/ Log Analytics teams to get this properly documented there.
Also, even if you're using the log analytics based app insights, you can also always query through the "app insights" resource and use the app insights schema the "old" way as well. (unless you're doing something specific in log analytics that the AI based way doesn't have?)
example:
left is query against app insights schema, with exceptions table and itemId column
right is query against logs schema, with AppExceptions table and _ItemId field, returning the same exact item by that id value. you can seee that the _ItemId field shows red squiggles like it isn't valid, but that is incorrect, you'll get the right row if you run the query.

Related

The required QueryBuildDataSource was not found in the Query associated with the FormDataSource

I've extended the SalesTableListPage to include a new column taken from a display method on CustTable now my users are getting the error:
The required QueryBuildDataSource was not found in the Query associated with the FormDataSource . The QueryBuildDataSource should have the same name and table ID as the FormDataSource.
To gain access to the display method I had to:
Add CustTable to the SalesTableListPage Query
Re-Select the SalesTableListPage Query on the Data Sources node of the SalesTableListPage Form.
Add a new StringEdit on the grid and set it to CustTable CityName_BR
I can't replicate this error with my admin or my non-admin user and I don't understand where this error comes from.
One post says that if you have a Query on the menu item that opens the Form then that query needs the same data sources as the query on the form. But I don't have a query on my menu item
Other suggestions state that I need to add the new data source "in the Table related queries". I am unaware of such a setting in AX 2012
Other suggestions refer to queries written in code. mine are AOT queries
Update: It seems the reason I wasn't getting the error was that I had the CueGroup EPCustRelatedInfo or just CustRelatedInfo collapsed. When I unfold this part I am getting the error as well.
Resolving that Cue Group has led me to several menuitems with queries attached. The culprit seems to be the SalesTableListPageOpen menu item and query of the same name (which references the query I have changed).
I am however still confused as to how to actually fix the error since the SalesTableListPageOpen query just says Composite Query\SalesTableListPage. Unsetting/resetting the referenced query, restoring and re-compiling the query has not had any effect...
I think one of your suggested solutions is probably correct. Just investigate the query though and you should be able to figure out what's happening.
At the bottom of \Classes\SalesTableListPageInteraction\initializeQuery just put:
info(_query.toString());
Then open the menus All sales orders and Open sales orders and you'll see the query differences. Then repeat opening various menu items with different users and see what results.
You may need to move the location of the info line, but the concept is there.

reporting on event hits in google analytics

I have been tasked with using Google Analytics to report of use of a desktop app so we can see which parts of the program are being used and how heavily, and potentially also see which companies are using which parts of the program (each company has a unique companyID). Ideally I'd like to be able to look at correlations (e.g., How many users who use report A also use process B?)
I currently have my program set to fire off a call to analytics. I've set it up to use the event tracking, but I'm open to app/screen tracking or something else if something would work better. I'm passing values like
v=1
&t=event // Event hit type
&tid=UA-XXXXX-Y // our ID; real code has valid value here
&cid=12345 // CustomerID
&ec=JobFinancialReport // Event Category
&ea=Run // Event Action
&el=Manager // Event label
&ev=7 // Event value
What I can't figure out is how in Google Analytics to set up reports that would show me something like:
CustomerID Category Label Total Hits Unique Users
12345 JobFinancialReport Manager 27 2
12345 MarketingReport1 Manager 6 4
I'm totally new to analytics so pardon my ignorance if I have some key misconception here. I've searched Googles sites and other questions here, but I may be wording my question incorrectly so I'm not finding something that's there. This is only one example; in some cases we might want to see how broadly each customer is using the program; in other cases we'd want to take the customerID out and just see how much a particular report is being used overall. Appreciate any guidance. Thanks.
The "cid" parameter is the client id, the value that is used to stitch single interactions into sessions and users.
The first problem that comes to mind with your setup is that the client id is not exposed in the user interface (with the single exception of the user explorer report) or the API.
You would need to implement this via a custom dimension (probably user scope, since it probably will never change for a given user) where you pass in the client id (you still need the cid parameter).
Then you could create a custom report (or create a report in Google Data Studio) with the custom value as primary dimension and your selected metric.
If you want to report "Unique Users" you would probably need to create a cid per logged-in user (if all users of the app have the same cid then you will always have but a single user reported). You should then probably create a second custom dimension for the company id, so you can segment your reports by company.
you can use custom reports in google analytics to get your desired output. here is how to create custom reports https://support.google.com/analytics/answer/1151300?hl=en

InfoPath - How can I read a people picker field and query AD to load additional fields related to the person in the field.

How can I read a people picker field and query AD to load additional fields related to the person in the field. Example: Employee Name; load information want to load email address, phone number. the InfoPath form is being used with Nintex Workflow and SharePoint 2010.
I have searched and have not been able to find answer.
Thanks
D
Unfortunately I don't have enough reputation points yet to leave a comment, but your question really doesn't provide enough detail. So any answer provided is going to be based on assumptions. You don't even clarify what version of InfoPath you're using.
That said, a good place to start is to create a data connection to receive data. You'll need to select the web service option and will then need to enter in the web server address. The address will probably be in the following format:
http://yourservernamehere/_vti_bin/userprofileservice.asmx?wsdl
Replace yourservernamehere with the address of your SharePoint server. Then, you'll need to select GetUserProfileByName as the operation you need. Just keep on clicking next and then finish to complete the connection.
You will then have to view the data source within InfoPath to see what fields are available and map the ones you want to the fields you want prepopulated on your form.
All this is based on my own assumptions, so I can't guarantee it will work in your scenario. Happy to assist if you still need help and are able to provide more details.
To autocomplete you can use your e-mail or phone number fields, with a new action rule. This is due to people picker fields not allowing any action rules applied to them.
The web service option mentioned in another answer unfortunately no longer works in SharePoint Online. Please use a data connection the hidden User Information List located on the stem of your SharePoint site instead.
Condition:
Use the condition DisplayName is not blank by using "Select a field or group..." in advanced view and selecting your people pickers DisplayName field
Actions:
Set a field's value
Field: User Information List data connection queryFields DisplayName of people picker
Value: your forms DisplayName of people picker
Query using a data connection: User Information List data connection
Set a field's value
Field: your forms email or phone number field
Value: data fields > Work_email / Work_phone of your data connection

Get google analytics id from the code embed?

As an example, the code I have to embed has an ID of the form: UA-3235632-1, but to use the data export API I need the ID from the URL of the proper page, in this case: 6270018.
How do I get the real ID from the UA type ID?
That feature of the the GA Data Export API could indeed be a little more clear.
Here's what you need to do:
login to the GA Browser and in the
upper-right-hand corner drop-down
menu, select your GA Account of
interest (assuming you have more
than one--if you don't then you are
already on right page). The page
that renders will be the Website
Profiles for that Account. Find the
row in that table that corresponds
to the Profile (Report) you want
retrieve data from and click on the
next-to-last column Edit;
The page you'll see now will say
Profile Settings in the upper
left-hand corner. Just under that,
in smaller font, you'll see Profile
ID followed by a string of digits
(probably six to eight). This is what you want
(in the python client for the GA
Data Export API, it is referred to
as TABLE_ID)).
To retrieve this parameter (TABLE_ID) programmatically, the GA Data Export API Account Feed returns this value to you in the dxp:tableID field. In particular, an Account Query will return the list of profiles under that Account to which you have access; each Profile will have a tableID in the field i mentioned just above.

Limiting records returned by a sqldatasource, using session variable in where clause

I have a web application which has a Sql Server database on the backend. As the site will be rolled out to different clients (or different virtual directories in IIS), each client derivative of the site will use the same backend.
There is an admin page where text on the site can be changed (enter text in a listview, and choose the page to select where that text will show up, and also you can see company-specific details in the other listviews. As this is a shared database, that means a client can see each other's data.
What I am trying to do is store the accountId (a guid returned from the database from login_authenticate), and stick this into session. I then retrieve this on the admin page, and I want to use this value (But it's always 0000-0000 etc), to limit the records returned in the listview.
Is there an example of this? Also, how can I set the default value (this is in the where clause of SqlDataSource), to programatically what the account id is (so I can give me all records = what the current accountid is, or perhaps, what the login is - this is stored in the account table).
Thanks
This is what I tried.
What I am confused about, though, is whether the where clause, when using a session object, is getting an object that I have written the code to retrieve from the session, or an object I have only added but not retrieved. I get the accountID when logging in (verified via stepping in - obviously - or the login will fail).
I will try again with storing the object in session # the login page when I have just retrieved the accountid variable, and then retrieve it on another page.
For some reason I keep getting 0s so I will look at this in my application.
It sounds like your method should be working. I would follow a debugging process:
Check that you are getting the accountID value from the database. Print it on screen immediately after retrieving the value for the first time.
If this is working, store the value in the Session and immediately retrieve it, and check that you are getting the value back.
Create 2 test pages, one where you set the Session variable and another where you retrieve it.
I know this seems really basic, but the failure is being introduced somewhere in the above 3 places. If you can find which step fails, you will be able to fix it.

Resources