Azure maps excessive hits - azure

Currently I use azure maps fuzzy search ( https://learn.microsoft.com/en-us/rest/api/maps/search/getsearchfuzzy )
So when I do a search using GET https://atlas.microsoft.com/search/fuzzy/json?subscription-key={subscription-key}&api-version=1.0&query=1600 Pennsylvania ave Washington DC 20500 I get several results, including POI and Point Address.
This event is triggered off of an onblur event from an address change.
Last month we got billed for 5,000,000 hits from Azure when we didn't have near that many. That number should have been closer to 6000.
Is that because I am using the fuzzy search or what? I can't seem to find any information on why our hits would have been so high.

The delta seems absurdly high (6000 vs 5,000,000). Are all those 5,000,000 calls, Search Fuzzy API calls?
Can't say much without looking at the actual code but if the behavior is that in your app the "user adds an address in a form field" and when the "user finishes adding the address and clicks outside that address box (onBlur event fires)" and calls Azure Maps Search Fuzzy API - that would be one call (irrespective of it returning multiple/different categories of addresses POIs, Point Addresses etc.) - [Unless you are using the API in the "predictive" mode (param typeahead = true) and calling the API everytime the user enters a character]
I would try and check the number of calls going out to Azure Maps using any network capture tool (Fiddler/Browser n/w capture) and if they look okay then check the Azure Maps metrics for "Search Fuzzy API" in the Azure Portal to see if they look ok.
But if you are only making an explicit call to the API manually once the user finishes adding/editing the address then I don't see a reason why that call won't be recorded as 1 call on the Azure Maps side.

Related

Performance tile showing different records for same method

Currently in Performance tile in Insight we have performance detail for the application request.
If we have an API like:
GET /order/{orderId}
so, for this kind of request, it showing as different request and matrix is also different for different orderId.
But for the owner point of view, this is a same request and needs to have shown under one request for all call for this method.
For the above mentioned API, if we have the request coming as:-
/order/1
/order/2
/order/3
Then in Azure portal, under performance tile for Application insight, it consider this as different operations and hence show stats individually for each unique request.
But as per the developer, this is a single API and needs to monitor as single operation.
How to achieve this in Azure portal?
In the Performance tab, you have the ability to add filters for your results but in your scenario I would:
Click on View in Logs (Analytics)
Select Requests
Add an appropriate contains statement: | where operation_Name contains "GET /order"
At this point the Overall line contains the total Duration Average and Count shown in the Performance tab, as well as percentile information for all orders.

Stored Value Sets that are accessed throughout a Bixby Voice Experience

I am completely new to Bixby development so I apologize in advance if this is a newby question that doesn't make sense. I'm trying to understand the best way to store value sets returned from external APIs to use throughout Bixby Voice experiences. An example might be an API that gets all the menu items at a restaurant or an API that gets all the clothing catalog items from a store. When users interact with the data to search or transact I don't want to have to go back to the external API to get the value set again. For example: Find Vegan Menu options followed by Okay how about pescatarian options. Or: Find dress pants followed by okay how about dress shirts. I'd like to come back to a menu object in the first case or a catalog object in the second without having to re-load the value sets from the API.
In the sample code I've seen all of the value sets appear to be read in each time an action/endpoint/java call is made
There is no local storage in the current version of Bixby.
The easiest solution is to request through API calls. However, http.getUrl() itself is cached by default, and Bixby runs on Samsung server, so no actual API calls in practice when requesting same url in short sessions.
You can read more about http API options and how to disable cache feature by reading more here

Azure Maps requests monitoring

Does anybody knows, what metric is shown in Azure Maps usage diagrams?
This is what diagram looks like, and number of request in the charts significantly differs from my traffic amounts. It seems like 10-15 requests in the graph per each visitor on the site.
I suppose that charts showing amount of map-tiles loaded, where each tile load is considered as a request.
Update
The question is about using JavaScript maps control
Map loads in map control is tracked as Map tile API requests where each API request renders one tile. On Azure portal on the Azure maps usage page you can click on "Apply splitting" button and group the usage by "API name" to confirm your assumption.
It's hard to give an accurate answer without more context but usage (along with availability) itself is the metric in the graph. You can also apply filters on the graph based on API Names, API categories, Response codes etc. and it'll show you the count of requests for that specific api(s). I'm guessing you might be using the Get Map Tile API in which case each tile load is a separate request and will be counted as such on the dashboard.
If that doesn't answer you question please add more context as to what api(s) are you using and i can try and answer more accurately.

How does Mixpanel's Search Keyword work?

I'm curious on how Mixpanel tracks which Search Keywords an event is affiliated with. Is this from the organic search (vs. paid search ads)?
If yes, how did they do it? From a glance, I guess organic search works this way:
That link goes to a proxy link with some query parameters which contain info about the (encrypted) search term & the real destination link.
Redirect to the real destination link.
Google Analytics know the organic search keyword used on a session because they intercept it in the middle point. I'm not sure if there's any way for someone outside of Google to intercept that info (including Mixpanel). Right? (correct me if I'm wrong)
If there is a way for the destination website to know the organic search keyword, can I be enlightened on the method?
I don't think this is coming from organic search or paid ads due to a couple reasons:
Most of the organic traffic is now in HTTPS which makes it hard to get the search parameters. Google Analytics shows this data through the Webmaster Tools console which is able to grab keyword data in a different way (I assume through the Google backend and not the URL itself). Otherwise, you are stuck with the "Not Provided" issue in Google Analytics.
Mixpanel only captures the default UTM parameters: utm_campaign, utm_source, utm_keyword, utm_medium and utm_content. Mixpanel also calls this properties as expected: UTM Medium, UTM Source, etc.
I can't tell from your screenshot but it seems this might be a custom property that your Mixpanel setup is setting it, perhaps from an internal search engine? Or perhaps you're grabbing a custom URL query?
Can you provide more information as to how this event is being captured?

Paging in Azure AD graph client

We need a way to get users based on page index and page size so that we will not load all the users every time.
I have gone through with the Azure Graph Client documentation here http://blogs.msdn.com/b/aadgraphteam/archive/2014/12/12/announcing-azure-ad-graph-api-client-library-2-0.aspx
There is a way to iterate forward/backward but, i didn't found a way to get the users based on page index(i.e: i want to get users from 10-20 in the list if i pass parameters page index=2 and page size=10).
If we go with forward/backward paging, then i have to iterate through each page to find the next set of records, which I don’t want to do that.
Any help would be appreciated.
In order to accomplish the kind of pagination you're looking for, Azure AD Graph API need to support both $top and $skip OData operators. However kooking at Supported Queries, Filters, and Paging Options in Azure AD Graph API, while $top is supported but $skip isn't thus I don't believe it is possible to accomplish pagination they way you want to.
It does support $top and $skiptoken which can be used for navigating back & forth but will not serve the scenario you're looking to implement.
Sorry, currently this is not possible via the Graph Client. What you are looking for is similar to a query of a database, where you can selectively control the return set. Azure Graph does not have this capability. When you make a query, the result is returned one page at a time. You pass your token each time you are requesting the next page in the return set. There exist no way that actually tracks page 1, 2, 3... and so forth of the return set, thus, no way to say bypass pages 1 and 2 to go directly to page 3. The only capability available is next page and previous page. There is no page index maintained that can be queried. You get the your results one page at a time.
As said by MMTT here: https://social.msdn.microsoft.com/Forums/en-US/199bbf92-642a-4bcc-add4-f8023a7684e2/paging-in-azure-ad-graph-client?forum=WindowsAzureAD

Resources