Application performance observation through New Relic.

Reading Time: 6 minutes

Hello Readers, I hope you liked my previous blog on kubernetes autoscaling through karpenter. Today in this blog we will know about an amazing tool called New Relic. Also we will see application performance observation through New Relic. which can be helpful in making applications reliable as well as highly available for consumers. New Relic is a observability platform for application performance which can be integrate with almost all cloud provider. 

For any organization Performance of its application is a critical attribute. Admins must track application performance as traffic levels and infrastructure demands shift. Poor performance affects customer satisfaction and business revenue, and even compromises compliance.

Application performance monitoring platforms like New Relic which follow the behaviours of web and non-web applications that run across the business. When admins watch the performance of an application over time, they can validate provisioned resources, ensure adherence to customer SLAs and troubleshoot potential issues effectively which makes the application highly reliable and highly available for customers.

Now here questions arise that in the market many successful monitoring tools already exist and some are self hosted also, so what makes New Relic unique from them.

New Relic is built for full stack observability. It links all relevant data so that you get the whole picture of everything that enables your systems to deliver value to your customers, from the container running a microservice in the cloud to a mobile website’s shopping cart button.

Application performance observation through New Relic.

Features of New Relic

New Relic APM software as a service has a feature set intended to collect data, analyze the data and report relevant performance metrics to IT administrators and other application stakeholders.

  • Metrics gathering: It gathers metrics on web transactions, including response time on the web server side as well as metrics on individual HTTP requests. The tool also digs into the metrics of major database applications, such as SQL, to report response times and throughput, time per query, slow queries and other details that help pinpoint SQL statements that might bog down a website.
  • Analytics: New Relic APM provides detailed error analytics that identify the exact error locations and classify the associated transactions and error types. Admins can filter results to tease out specific error details and attributes for each trace.
  • Alerting and reporting. Its alerting model is based on transaction-level and access to transaction dashboards, topology maps and SLA compliance reports. A key transactions monitor tracks and reports the most important business transactions related to the application.
  • Troubleshoot from anywhere: New Relic UI allows us to start observability journey from any element of your stack. For example, we can get to crucial infrastructure logs from traces of an application running on a problematic Kubernetes pod.
Application performance observation through New Relic.

How New Relic works

  • Metrics Collection and Storage: New Relic APM collects and stores metrics and data from web-based and other associated applications within the enterprise. New Relic receives data over the network and then processes and analyzes it. Users view the data through a dashboard-type interface.
  • Use of Agents: Small segments of code installed into the application or application environment. Numerous agents handle a wide range of applications, and users can find agents in C (as an SDK), Go, Java, .NET, Node.js, PHP, Python and Ruby.

Administrators can review these details, identify any factors that might delay performance, and determine the root of the delays. Dashboards point out issues in real time and track trends over time. When an issue is discovered, administrators and developers can take corrective action — such as a code update — and then compare the performance differences to objectively determine the effect of any changes.

New Relic has numerous integrations to interoperate with tools across the enterprise. For example, the New Relic platform can integrate with alerting and collaboration tools such as PagerDuty, Campfire, HipChat and Slack. Ticketing and help desk integrations include Atlassian Jira, Lighthouse or Pivotal Tracker, and the tool can interoperate with a range of public cloud services from Amazon Web Services, Google and Microsoft Azure. Organizations can use APIs to create custom queries of metrics data and access data about error rates, application server performance and more.

Application performance observation through New Relic.

Hands on

I hope till now we have understood the theory part of new relic and it way of working now its time to do some hands on New relic. We are going to have some hands by integrating new relic with kubernetes

Prerequisite

We will integrate new relic with GKE Cluster with the help of helm

  1. Find and copy your New Relic license key.
  2. Choose a display name for your cluster.
kubectl config current-context
  • We deploy new relic with auto-installer of new relic.
  • Select account in new relic.
  • Select environment in which we want to deploy
Application performance observation through New Relic.
Application performance observation through New Relic.

After clicking on Begin installation we get redirected to installation method in which we chose helm3 option

Application performance observation through New Relic.
Application performance observation through New Relic.
Application performance observation through New Relic.

Now we will run helm command to start installation.

helm repo add newrelic https://helm-charts.newrelic.com && helm repo update && \
kubectl create namespace newrelic ; helm upgrade --install newrelic-bundle newrelic/nri-bundle \
 --set global.licenseKey=null \
 --set global.cluster=new-relic-test-cluster \
 --namespace=newrelic \
 --set newrelic-infrastructure.privileged=true \
 --set global.lowDataMode=true \
 --set ksm.enabled=true \
 --set kubeEvents.enabled=true 

It will take few minutes to integrate with our cluster. We can check by running below command

kubect get pods -n newrelic
Application performance observation through New Relic.

login in new relic account

We will also deploy Pixie for more data observation 

Now we will login in our new relic account and we can see our GKE cluster in it and all stats for performance evaluation and monitoring.

We can see data gap logs and other logs as well
We are allowed to check and manage alerts and set alarms and notifications.

Pros and Cons

  • Querying data with their dialect/syntax.
  • Inventory data around system and configuration.
  • Mobile Monitoring.
  • NRQL does a good job but not as sophisticated/able to be fine-tunes as a SQL Query.
  • Limited New Relic Support at times – Good but sometimes limited.
  • More on the storage size for JSON/text.

New Relic competitors

New Relic competitors include AppDynamics, Datadog, Dynatrace, SignalFx and Splunk Technology. An APM tool can be part of the IT toolset for years, so evaluate each prospective tool carefully — compare features, benefits and costs — prior to a final decision.

Conclusion

In the blog we saw how New Relic can help the teams in making their application perform better. This is an advanced tool and a must-have utility for advanced web and mobile environments. Configuring New Relic with any application is easy and new relic documentation covers every aspect of the application monitoring. That’s pretty much it for this blog. If you have any feedback or queries, please do let me know in the comments. Also, if you liked the article, please give me a thumbs up and I will keep writing blogs like this for you in the future as well. Keep reading and Keep coding.

knoldus

Written by 

Abhishek Dwivedi is a DevOps Professional working in Knoldus Inc as Senior Software Consultant. Abhishek loves to juggle devops tools and learn everyday new things in new techonologies. He believes in by sharing knowledge we can gain more knowledge.