• Log in
  • Sign up

Practice diagnosing common issues using New Relic

30 min

Every time you deploy an application, you hope that it's efficient and error-free. The reality, however, is usually quite different. You might introduce a bug in a release, overlook an edge case, or rely on a broken dependency. These issues, and others, can result in bad user experiences.

In this guide, you:

  • Use the open-source New Relic demo-deployer to spin up the infrastructure for Acme Telco Lite, a fictional company, and simulate real-world issues in a controlled, demo environment
  • Use New Relic to understand those issues from the perspective of a Telco Lite developer
  • Use the deployer to tear down the resources you create

Welcome to Acme Telco Lite!

Acme Telco Lite is a mock telecom business that maintains an eCommerce website for its customers. The site's architecture has eight, interconnected microservices, plus a simulator:

Acme Telco Lite architecture diagram

The simulator isn't part of the Telco Lite infrastructure, but it is part of the demo deployment. It runs scenarios against the application to create web traffic and generate interesting data in New Relic.

Set up your environment

Before you begin, follow the Prerequisites guide from the deployer's GitHub repository for a detailed walkthrough of how to set up your environment. For this guide, you can choose between Amazon Web Services (AWS), Microsoft Azure, or Google Cloud Platform (GCP) to host your deployment.

The guide steps you through:

  • Installing Docker
  • Cloning the demo-deployer
  • Creating a user config file containing credentials for New Relic and your cloud provider
  • Downloading a .pem key file (if your cloud provider is AWS)

Once you're all set up, deploy Acme Telco Lite.

Deploy Telco Lite

It's time to deploy and instrument the Telco Lite services using demo-deployer. Copy the url for the demo that corresponds to the cloud provider you chose when you set up your environment:

Follow the Deployment guide in the deployer's repository for a thorough explanation of how to use the deployer in a local Docker environment. When you run the deployment script, make sure to pass the url you copied for <demo-url>.

NOTE: Since Telco Lite contains several services, the deployment can take over half an hour.

When the deloyer is finished, you should see some output stating that the deployment was successful:

bash
[INFO] Executing Deployment
[] Parsing and validating Deployment configuration success
[] Provisioner success
[] Installing On-Host instrumentation success
[] Installing Services and instrumentations success
[INFO] Deployment successful!
Deployed Resources:
simuhost (aws/ec2):
ip: 34.201.60.23
services: ["simulator"]
uihost (aws/ec2):
ip: 18.233.97.28
services: ["webportal", "fluentd"]
instrumentation:
nr_infra: newrelic v1.12.1
backendhost (aws/ec2):
ip: 35.170.192.236
services: ["promo", "login", "inventory", "plan", "fulfillment", "warehouse", "fluentd"]
instrumentation:
nr_infra: newrelic v1.12.1
reportinghost (aws/ec2):
ip: 54.152.82.127
services: ["billing", "fluentd"]
instrumentation:
nr_infra: newrelic v1.12.1
Installed Services:
simulator:
url: http://34.201.60.23:5000
webportal:
url: http://18.233.97.28:5001
instrumentation:
nr_node_agent: newrelic v6.11.0
nr_logging_in_context: newrelic
promo:
url: http://35.170.192.236:8001
instrumentation:
nr_python_agent: newrelic v5.14.1.144
nr_logging_in_context: newrelic
login:
url: http://35.170.192.236:8002
instrumentation:
nr_python_agent: newrelic v5.14.1.144
nr_logging_in_context: newrelic
inventory:
url: http://35.170.192.236:8003
instrumentation:
nr_python_agent: newrelic v5.14.1.144
nr_logging_in_context: newrelic
plan:
url: http://35.170.192.236:8004
instrumentation:
nr_python_agent: newrelic v5.14.1.144
nr_logging_in_context: newrelic
fulfillment:
url: http://35.170.192.236:8005
instrumentation:
nr_python_agent: newrelic v5.14.1.144
nr_logging_in_context: newrelic
billing:
url: http://54.152.82.127:9001
instrumentation:
nr_java_agent: newrelic v5.14.0
nr_logging_in_context: newrelic
nr_logging: newrelic
warehouse:
url: http://35.170.192.236:9002
instrumentation:
nr_python_agent: newrelic v5.14.1.144
nr_logging_in_context: newrelic
fluentd:
url: http://18.233.97.28:9999
url: http://35.170.192.236:9999
url: http://54.152.82.127:9999
Completed at 2020-08-11 11:27:00 -0700
[INFO] This deployment summary can also be found in:
[INFO] /tmp/telcolite/deploy_summary.txt

After configuring your environment, you only needed two commands (and a bit of patience) to spin up all the Telco Lite services!

View your services

With your services running in the cloud, log in to New Relic and select APM from the top navigation to see how your services are holding up:

APM story introduction

Yikes! The alerts, high response times, and red-colored indicators suggest things aren't well. Use New Relic to diagnose these issues, which are simultaneously affecting your services:

Don't worry if you don't see all the same alerts. The simulator triggers issues at regular intervals, so you should start seeing these problems in New Relic within 30 minutes to an hour.

Tear down Telco Lite

When you're finished diagnosing all the issues effecting Telco Lite, follow the Teardown guide in the deployer's repository to tear down the services you created in your cloud provider. If you're still exploring, don't tear down your services, or you'll have to deploy them again later.

Conclusion

Congratulations, you're done! Throughout this tutorial, you:

  • Used the demo-deployer to deploy Telco Lite to the cloud
  • Used New Relic to investigate simulated issues in Telco Lite services
  • Tore down all the infrastructural resources you created throughout this tutorial

Hopefully, you learned a lot about using New Relic to investigate issues in your services. To get your hands on more features of New Relic, pick another demo from the catalog and spin it up with the deployer!

Edit this pageCreate an issue
Copyright © 2020 New Relic Inc.

This site uses cookies 🍪

We use cookies and other similar technologies ("Cookies") on our websites and services to enhance your experience and to provide you with relevant content. By using our websites and services you are agreeing to the use of cookies. You can read more here. If you consent to our cookies, please click Yes.