Custom Azure Application map like application - azure

I have an Azure app insights resource. The telemetry data for multiple APIs and azure function gets collected in the same resource. The application map is very complex as telemetry data is collected for lot of apis in the same resource. The application map is hard to read and analyze and sometime does not load also.
What is the best way to create a custom application which will depict the Application map based on the cloud role name selected.

Related

Is hierarchy available in Azure Application Insights (like AWS Cloudwatch)

Can we create directory in application insights? Like Aws Cloudwatch has Log Groups inside that log streams can we apply same structure in Azure Application Insights?
Looking over the docs for Cloudwatch it doesn't look like there's a direct correlation between App Insights and Cloudwatch, but you can get a similar effect.
Azure also has the concept of tagging, and that can be applied to any resource or resource group.
For the data retention settings, you can't automatically sync them between App Insights instances, but the recommended structure is to use a single App Insights instance for all the components in an application and they will be divided by cloud_RoleName property. By that architecture App Insights instance would be at least somewhat equivalent to a group and the RoleName would designate a specific stream.

Can I filter the export of telemetry from app center to application insights?

For a particular Android app in App Center, we are collecting all events and exception. Now i want to export the app telemetry to Azure Application Insights but separately for exceptions and separately for all other events.
Is there some way to have separate exports on the basis of defined events?
If all the data went into a single instance of Application Insights, then is it possible to make 2 separate storage as blobs from single Application Insights instance?
I would suggest this approach:
Export all telemetry from App Center to Azure Application Insights first using the procedure detailed here, as George suggested above.
Set up Continuous Export in Application Insights to then pump your telemetry to Azure Storage.
For Application Insights, data is continuously exported from App Center the moment export is configured along with 2 days of backfilled data. And once continuous export is enabled on your App Insights instance, you will be able to see your raw exported telemetry in a single Storage account auto-categorized into blobs as per the data types selected (Exceptions, Requests, Traces etc.).

Approach for creating consolidated trace/ logs for on-premises solution consuming Azure services

Following is the proposed transition in our application:
Web Application is deployed in on-premises IIS (Web Server 1).
Web Application has one functionality (for example, Generate Invoice for selected customer).
For each new request of Generate Invoice, the web application is writing message to the Azure Service Bus Queue.
Azure function gets triggered for each new message in Azure Service Bus Queue.
Azure function triggers Web API (deployed on-premises).
Web API generates Invoice for the customer and stores in the local file storage.
As of now, we have everything setup on-premises, and instead of Service Bus and Azure function, we directly consume Web API. With this type of infrastructure in place, we are currently logging all events in an MongoDB collection, and providing single consolidated view to the user. So they can identify what happened to the Generate Invoice request, and at which level and with which error it got failed (in case of failures).
With the new proposed architecture, we are in process of identifying ways for logging and tracing here, and display consolidated view to the users.
The only option, I can think of is to log all events in Azure Cosmos DB from everywhere (i.e., Website, Service bus, function, Web API), and then provide consolidated view.
Can anyone suggest if the suggested approach looks OK? Or if anyone has some better solution?
Application Insights monitors the availability, performance, and usage of your web applications whether they're hosted in the cloud or on-premises. It leverages the powerful data analysis platform in Azure Monitor to provide you with deep insights into your application's operations and diagnose errors without waiting for a user to report them.
Workbooks combine data visualizations, Analytics queries, and text into interactive documents. You can use workbooks to group together common usage information, consolidate information from a particular incident, or report back to your team on your application's usage.
For more details, you could refer to this article.

Can ApplicationInsights track events across many WebApps/LogicApps/etc?

I have the following resources
One Mobile/API app
One MVC app
Three Logic apps
One Azure function deployment with 5 functions
I want to have a single tracking number (correlation ID) to track across all instances at the same time. I'm looking at the Contoso Insurance sample, but I'm rebuilding it by hand (not using Azure Deploy scripts).
I've read the deployment code, but I'm not sure if I can merge app insight logs together, or if it's a hack of some sort.
Observations
When I right click on visual studio, I can only associate to Application insights instances that aren't already connected to a *app (web | mobile | api).
However, in the configuration, I can give Application insights a direct GUID which might allow me to achieve the goal of one App Insights activity log for the entire process
Question
Is it possible to have one app insights log among all Mobile/API/Logic/MVC sites?
Is there a way to have (or should I have) one standard app insights instance per web app, then a special dedicated shared app insights instance for my code to call into and log?
What is contoso insurance doing with Azure App Insights?
Jeff from Logic Apps team here -- So the answer is yes - but there are some caveats. We are working to make the experience seamless and automatic, but for now it will require the following. First as a heads up:
First, for Logic Apps we have what's called the client tracking ID -- this is a header you can set on an incoming HTTP Request or Service Bus message to track and correlate events across actions. It will be sent to all steps (functions, connectors, etc.) with the x-ms-client-tracking-id header.
Logic Apps emits all logs to Azure Monitor - which unfortunately today only has a sink into Event Hubs, Storage, and Log Analytics -- not App Insights.
With all of that in-mind, here's the architecture we see many following:
Have your web apps just emit to App Insights directly. Use some correlation ID as needed. When firing any Logic Apps, pass in the x-ms-client-tracking-id header so you can correlate events.
Log your events to App Insights in the Function app. This blog details some of how to do that, and it is also being worked on for a better experience soon.
In your logic app - either write a Function to consume events off of Azure monitor and push to App Insights, or write a function that is an App Insight "logger" that you can call in your workflow to also get the data into App Insights.
This is how Contoso Insurance is leveraging App Insights as far as I understand. We are working across all teams (App Insights, Azure Monitor, Azure Functions, Logic Apps) to make this super-simple and integrated in the coming weeks/months, but for now achievable with above. Feel free to reach out for any ?s

How to Scale Azure cloud service up and down from Rest API with WebAPI

I am creating a demo where I need to be able to scale up my cloud service deployment from a WebAPI.
I went over the rest API documentation and didn't seem to find what I need.
Is it possible to use Service Management API to scale a cloud service up and down ?
Alternative I will just enable auto scale on a queue and then post messages to the queue to get it to scale up :)
As such there's no such function in Service Management REST API for scaling. Since the number of instances for a particular role is stored in the service configuration file, what you would need to do is read this configuration information using Get Deployment operation, locate the Instances node and change the value of count attribute. Then you would need to call Change Deployment Configuration for new instance count to be effective.

Resources