---
title: Introduction to New Relic for Go
source: https://docs.newrelic.com/docs/apm/agents/go-agent/get-started/introduction-new-relic-go
---

New Relic for Go monitors your Go language applications and microservices to help you identify and solve performance issues. You can also use your data to improve your customers' experience and make data-driven business decisions.

Go is a compiled language, and doesn’t use a virtual machine. The best way to monitor Go applications is to use the [Go API](https://docs.newrelic.com/docs/agents/go-agent/api-guides/guide-using-go-agent-api). Our API provides exceptional flexibility and control over what gets instrumented.

Use the New Relic Go agent to solve your app's performance issues with our [My app is slow tutorial](https://docs.newrelic.com/docs/journey-app-slow/root-causes/).

## Start monitoring your Go application [#install-new-relic]

To use New Relic for Go:

1.  If you do not already have one, [sign up for a free New Relic account](https://newrelic.com/signup).
2.  To install the agent, use our launcher, or follow the New Relic Go agent's [installation and instrumentation procedures](https://docs.newrelic.com/docs/agents/go-agent/get-started/get-new-relic-go). Wait a few minutes to view data from your Go app in your New Relic account's UI.

[Read the install docs](https://docs.newrelic.com/docs/agents/go-agent/installation/install-new-relic-go)

[Add Go data](https://one.newrelic.com/launcher/nr1-core.settings?pane=eyJuZXJkbGV0SWQiOiJ0dWNzb24ucGxnLWluc3RydW1lbnQtZXZlcnl0aGluZyJ9&cards[0]=eyJuZXJkbGV0SWQiOiJzZXR1cC1uZXJkbGV0cy5zZXR1cC1nby1pbnRlZ3JhdGlvbiIsImFjY291bnRJZCI6MjY0MDQwOX0=&platform[accountId]=1)

We recommend [instrumenting your Go code](https://docs.newrelic.com/docs/apm/agents/go-agent/instrumentation/instrument-go-transactions) to get the maximum benefits from the New Relic Go agent. But we make it easy to get great data in couple of ways:

-   Simply import the agent and create an application to get useful runtime information about your number of goroutines, garbage collection statistics, and memory and CPU usage.
-   Use our many [integration packages](https://docs.newrelic.com/docs/agents/go-agent/get-started/go-agent-compatibility-requirements#frameworks) for out-of-the box support for many popular Go web frameworks and libraries. We continue to add integration packages based on your feedback. You can weigh in on potential integrations on the [Support Forum](https://support.newrelic.com/s/hubtopic/Topic__c/Default?c__categories=%5B%7B%22icon%22%3A%22standard%3Adefault%22%2C%22id%22%3A%22a6c8W000000EeshQAC%22%2C%22sObjectType%22%3A%22Category__c%22%2C%22title%22%3A%22Go%20Agent%22%2C%22titleFormatted%22%3A%22Go%20Agent%22%7D%5D) and our [New Relic Go agent GitHub](https://github.com/newrelic/go-agent/issues) project.

## Monitor application and microservice performance [#monitor-performance]

The Go programming language, also called Golang, has become a popular coding choice for its ease of use, concurrency, and impressive speed.

With New Relic for Go, you will gain a new level of visibility into your Golang applications:

**See the big picture:**

-   Monitor the throughput, response times, and errors of the transactions in your applications and services.
-   Understand your application's runtime health by seeing memory usage, garbage collection behavior, and CPU usage over time.
-   With deployment markers, see how code changes impact application performance and health.
-   Use [infrastructure monitoring](https://docs.newrelic.com/docs/infrastructure/new-relic-infrastructure/getting-started/introduction-new-relic-infrastructure) to view detailed host and server data.
-   Use [distributed tracing](https://docs.newrelic.com/docs/apm/distributed-tracing/getting-started/introduction-distributed-tracing) to understand how your services and microservices are interacting.

**Identify and fix errors:**

-   Find bottlenecks by seeing time spent on database calls, external system calls, and key blocks of code.
-   View Goroutine counts and identify possible Goroutine leaks.
-   Get [alerts](https://docs.newrelic.com/docs/alerts/alert-policies/understanding-alert-policies/alerting-new-relic) for problems or errors before they affect users.
-   Create custom dashboards for important metrics.

**View logs for your APM and infrastructure data:**

You can bring your logs and application's data together to make troubleshooting easier and faster. No need to switch to another UI page.

-   With [logs in context](https://docs.newrelic.com/docs/logs/logs-context/configure-logs-context-go/), you can see log messages related to your errors and traces directly in your app's UI.
-   You can also see logs in context of your [infrastructure data](https://docs.newrelic.com/docs/logs/forward-logs/forward-your-logs-using-infrastructure-agent/), such as Kubernetes clusters.

**Analyze business data:**

-   Query user-related data and improve business processes.
-   Create [custom queries](https://learn.newrelic.com/live-webinar-introduction-to-the-new-relic-telemetry-data-platform) of your Go application data.
-   Send your own custom data to New Relic.
-   Create and share visual, interactive displays of your data.

## Additional instrumentation [#extend-instrumentation]

After installing the agent, consider the [Go Telemetry SDK](https://docs.newrelic.com/docs/data-ingest-apis/get-data-new-relic/new-relic-sdks/telemetry-sdks-send-custom-telemetry-data-new-relic)

## Check the source code [#source-code]

The Go agent is open source software. That means you can [browse its source code](https://github.com/newrelic/go-agent) and send improvements, or create your own fork and build it. For more information, see the [README](https://github.com/newrelic/go-agent/blob/master/README.md).
