How can I configure the perf counters in a Service Fabric Stateless service? - azure-service-fabric

I have looked at the options in the portal and also the resource group templates, but could not find a way to customize this list.
Also, is it possible to add custom perf counters (assuming the code already creates them) for monitoring in the service fabric application?

There is no integrated way to do this today, but there are three ways to do this:
Use Application Insights to monitor your application. There are some
details of how to do this with Application Insights that are not Service
Fabric specific here. There is also a project on GitHub that shows
how to integrate Azure Service Fabric with Application Insights.
Collect performance counters using Azure Diagnostics. Service Fabric is running on VMs, configuring diagnostics to collection from
an Azure VM can be found here.
Use Operations Management Suite which can also collect standard and custom performance counters. See links in the post below (I'm not allowed to post more than 2 links)

You could also try this approach: Setting up Application Insights for your Service Fabric application

Related

Service Fabric .NET Framework services and ApplicationInsights.config endpoints for Azure gov

I have a service fabric application that hosts api’s with app insights enabled. The api services are .Net framework 4.8 webapi projects and they are native fabric stateless and stateful services. I don’t use the app insights service fabric specific packages, but do have the standard app insights for webapi packages. I have always been in Azure commercial and logs have worked just fine there.
Now that we are in azure gov, the only way to point a .Net Framework app to the gov app insights endpoints is by modifying the ApplicationInsights.config file.
So I’ve modified the file as per msdn, verified it is deployed with the fabric deploy package and its there next to the rest of the dlls on the vms. Yet my services still won’t log to azure gov app insight instances. Nothing is coming through. We set the instrumentation key programmatically, not in applicationinsights.config, could that be an issue? I noticed some of the msdn examples showed instrumentationkey being included in the config file, but would think that is optional.
Had anyone had experience pointing .net 4.8 fabric services to gov app insights?
When using a government cloud, you need to use a connection string instead of an instrumentation key.
Important
Sovereign clouds, such as Azure Government, require the use of the
Application Insights connection string
(APPLICATIONINSIGHTS_CONNECTION_STRING) instead of the instrumentation
key. To learn more, see the APPLICATIONINSIGHTS_CONNECTION_STRING
reference.
More info here and here.
This ended up being an issue with my gov configuration file. The MSDN document wasn't very clear on where the new config sections go. It made it look like they are all nested under the top level node of the config file. Turns out the TelementyChannel override has to go inside the default TelemenySinks node. I contacted microsoft on github about clarifying this in their docs.
Link to the unclear documentation
https://learn.microsoft.com/en-us/azure/azure-monitor/app/custom-endpoints?tabs=net
Link to github issue to get it fixed
https://github.com/MicrosoftDocs/azure-docs/issues/80066

REST endpoint registration and bootstrap(Creating range-index) using U Deploy

I have my code in Git repository. I am using UDeploy to deploy my code into MarkLogic environment. I can able to move all my modules successfully but facing two problems
1. Creating New indexes
2. REST endpoint creation
Please let me know if there is anyway to implement these two
For creating indexes, I have tried to do it using API functions(admin:database-range-element-index()) and I have successful in that part. But is there any way to do it from UDeploy or DevOps.
For register REST endpoint I couldn't able to find anyway to try.
Have you looked at MarkLogic's REST Management APIs - https://docs.marklogic.com/REST/management. In particular, see if https://docs.marklogic.com/REST/POST/manage/v2/databases will help you create indexes via REST management APIs.
The most common way to deploy MarkLogic code & configuration is ml-gradle, a plugin to the widely used gradle tool. ml-gradle uses MarkLogic's Management API, mentioned by Ganesh, and is scriptable.

How to check the SLA of a webservices

We currently deployed our Spring Boot Application in GKE(Google Kubernetes Engine) and we are currently using cloud endpoint to secure our web services. We have 11 web service developed which will be consumed by external clients. Is there any way i check the SLO (times, performance) of a webservice in cloud endpoint or in stackdriver.
You might want to check:
Spring sleuth
Jaeger operator
Jaeger is a opentracing standard and can help understand the values, and sleuth is a tool to integrate with spring, there are several options, you might want also to consider opencensus
First you need to expose metrics from your applications. Spring Sleuth is a great choice if you're using Spring Boot.
Then you need to collect the metrics and visualize them. Google provides a tool for that called Stackdriver Trace. It can also do metric-based alerts. You can find a sample setup for your use case here.
There are other performance monitoring services such as Dynatrace or Datadog.
If you want a self-hosted solution, you can use Zipkin which is inspired by an internal Google system called Dapper.
Have you looked at Google cloud console UI? Its "Endpoints" tag should show all services your project is running.

Consuming Service Fabric ETW events outside Visual Studio

By default, ETW events produced by SF services are available through VS tooling. They are not available via Service Fabric Explorer. What are other (external to VS) tools can be used to consume those events?
A few options here:
Azure Diagnostics
https://azure.microsoft.com/en-us/documentation/articles/service-fabric-diagnostics-how-to-setup-wad/
the (preview) Service Profiler
https://www.azureserviceprofiler.com/
(I think it works for Actors only at this time though, but it's already a very cool tool, worth having a look at)
(as mentioned) Elastic Search
https://azure.microsoft.com/en-us/documentation/articles/service-fabric-diagnostic-how-to-use-elasticsearch/
(etw data needs to be collected and transferred in every option)
You can use Elastic Search or Kibana

How to integrate NewRelic App Monitoring tool with Cloudify?

I am looking to forward integrate NewRelic Agent with Existing Cloudify 2.7 Environment.
Since Cloudify apps are running in individual paths and each deployment takes to apps running on different paths, it's not possible to assign the app server to newrelic. How can I over come this?
It's not entirely clear what you are trying to accomplish.
You recipe can install the NewRelic agent and configure it to connect to NewRelic.
Alternatively, if the NewRelic agent has an API or CLI, you can add a
monitors{
}
section to your recipe. This section will collect the required stats from the local agent and publish them to the Cloudify Manager.
More information is available here: http://getcloudify.org/guide/2.7/plugins_and_probes/probes.html
The collected monitors are then available using the Manager REST API. You can then use a separate process to poll the metrics from the manager API and send them to NewRelic. Look at: http://getcloudify.org/guide/2.7/restapi/restdoclet.html
and the API at
/{version}/deployments/{appName}/service/{serviceName}/instances/{instanceId}/metrics