---
title: Go language integration tutorial and build tools
source: https://docs.newrelic.com/docs/infrastructure/host-integrations/infrastructure-integrations-sdk/get-started/go-language-integration-tutorial-build-tools
---

The [Infrastructure Integrations SDK](https://docs.newrelic.com/docs/infrastructure/integrations-sdk/get-started/intro-infrastructure-integrations-sdk) lets you build a custom on-host integration. This document explains the build tools and resources available for building an on-host integration with our Go language tools.

## Integrations tutorial [#tutorial]

> #### ⚠️ IMPORTANT
>
> The following tutorial is based on integrations using the SDK integration protocol v3.  
>           Find more information about the integration protocol v4 in the [Github repository](https://github.com/newrelic/infra-integrations-sdk).

The [Go language integration-building tutorial on GitHub](https://github.com/newrelic/infra-integrations-sdk/blob/master/docs/tutorial.md) gives step-by-step procedures for building a Go language integration that reports Redis data.

The tutorial shows how to build an integration using the Linux command line, but you can use the same techniques for a Windows integration with a standard Go install and PowerShell. The `make` command will not work with PowerShell, but you can use the Go commands inside it as a guide for building your integration.

> #### 💡 TIP
>
> You can create an on-host integration in any language, but Go is the language New Relic uses for its own integrations and build tools. To create an integration in another language, adhere to the [integration file structures and JSON output requirements](https://docs.newrelic.com/docs/integrations/integrations-sdk/getting-started/integration-file-structure-activation).

## Go language integration building package [#package]

The tutorial relies on a [New Relic Go language integration-building library package](https://godoc.org/github.com/newrelic/infra-integrations-sdk), which provides a set of useful Go functions and data structures. The package gives you tools that:

-   Generate a "scaffold" integration structure with all the required fields.
-   Read values from command-line arguments or environment variables.
-   Generate and print JSON data to `stdout`.

For information about file formats and JSON output specifications, see [File requirements](https://docs.newrelic.com/docs/integrations/integrations-sdk/getting-started/integration-file-structure-activation).
