0

I have a application which is hosted in multiple regions in Azure. Lately customers are complaining about slow performance. We are suspecting the issue is in one of the Azure regions, I am trying to look at the analytics from AppInsight and I could see for requests a column cloud_RoleInstance. Is there a way to derive the region from this column or any other default column?

John Gardner
  • 24,225
  • 5
  • 58
  • 76
Shiju Samuel
  • 1,373
  • 6
  • 22
  • 45

2 Answers2

1

You can use the client_CountryOrRegion and client_City columns in Analytics. For example, running the following query will get you the amount of requests per region:

requests
| project client_CountryOrRegion, client_City 
| summarize count() by client_CountryOrRegion, client_City

Please note that these column contain the county and city of the region, so you will need to manually convert that to the specific region. You can use the Azure regions page to convert between city/country and Datacenter. For example, Boydton Virginia is East US and San Antonio Texas is South Central US.

Hope this helps,

Asaf

Asaf Strassberg
  • 524
  • 4
  • 7
  • 2
    that will give only the client location, If I have an AppService which is hosted in eastus, westus and south central US, How can I make out where the clients are connecting to? – Shiju Samuel Nov 06 '16 at 09:57
  • If you gave descriptive names to your worker nodes, like eastUsNode1, WestUSNode2, you could use that! – FoxDeploy Dec 12 '20 at 18:49
0

According to your description, I assumed that your application deployed to multiple Azure Web Apps which belong to the specific Data Center (e.g. East US, West US, South Central US, etc.). And you leverage Azure Traffic Manager to distribute the request to the nearest Data Center, in order to get the lowest latency. Here is my test, you could refer to it:

I created a Traffic Manager and added two points:

1) The Web App named Bruce-Chen-001 which is hosted in East Asia

2) The Web App named Bruce-Chen-003 which is hosted in West US

By accessing the DNS name of my Traffic Manager and browsering the specific Web App directly, I could get the Request data from Application Insights as follows:

As I know, the column called cloud_RoleInstance indicates the identity of the host machine on which your app is running. You could try to manually convert cloud_RoleInstance to the specific region according to the related url column.

Bruce Chen
  • 18,207
  • 2
  • 21
  • 35
  • Thank you, My issue is URL columns are only having traffic manager URL. Your second row when you are going to traffic manager is hitting RD0000155x where in you can say it is hitting West-US I could make out that from your 1st row. Is there a pattern what Azure uses from which I can say RD0000155x is west-us and RD0000D3X is east-asia? Do you have list :) – Shiju Samuel Nov 09 '16 at 15:05
  • As this [article](https://azure.microsoft.com/en-us/documentation/articles/app-insights-performance-counters/) mentioned that the column named `cloud_RoleInstance` indicates the identity of the host server instance on which your app is running. And there are too many hosting server instances which are used to host apps in a Data Center. For a workaround, I assumed that you need to manually convert `cloud_RoleInstance` to the specific Data Center in your Request Data. – Bruce Chen Nov 09 '16 at 15:56
  • How would I manually convert, you mean to go into appservice find out which instance are hosting the services and map it manually to a region. But that only shows the current instance names, how do I convert all the instances of past. If I do a distinct like this I get 105 records `requests | summarize count() by cloud_RoleInstance` – Shiju Samuel Nov 09 '16 at 16:30