> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Aangepaste instrumentatie voor Go

AppSignal is compatibel met OpenTelemetry-instrumentatiepakketten.
Sommige van deze [instrumentatiepakketten](/go/instrumentations) vereisen mogelijk aanvullende configuratie.

Deze bevatten niet altijd de informatie die u nodig hebt om problemen te debuggen.
Voor fijnmazigere rapportage kunt u aangepaste instrumentatie toevoegen.

Wij ondersteunen [OpenTelemetry-tracing][manual] zoals beschreven in de OpenTelemetry-documentatie.
U kunt meer gegevens aan een span toevoegen met behulp van OpenTelemetry-span-attributen.

Er zijn ook AppSignal-span-attributen waarmee u kunt veranderen hoe traces worden gegroepeerd, en attributen waarmee u gevoelige gegevens kunt uitfilteren.

## Setup

Importeer eerst het OpenTelemetry-trace-pakket in het bestand waaraan u instrumentatie wilt toevoegen, wanneer u aangepaste instrumentatie toevoegt.

<CodeGroup>
  ```go Go theme={null}
  import (
  	"go.opentelemetry.io/otel"
  	"go.opentelemetry.io/otel/attribute"
  	"go.opentelemetry.io/otel/trace"
  )
  ```
</CodeGroup>

## Een nieuwe span aanmaken

Maak een nieuwe span aan met de tracer die is geïnitialiseerd tijdens de [installatie](/go/installation).

<CodeGroup>
  ```go Go theme={null}
  var tracer = otel.Tracer("my-tracer-name")

  func httpHandler(w http.ResponseWriter, r *http.Request) {
  	// Create a new span from the parent context
  	ctx, span := tracer.Start(r.Context(), "hello-span")
  	// Defer closing the span to the end of this function
  	defer span.End()

  	// Set attributes
  }
  ```
</CodeGroup>

*Opmerking: in deze voorbeelden vertrouwen wij op de context van het HTTP-verzoek, opgegeven door `r.Context()`.*
*Het ontvangen van de context kan in uw applicatie anders zijn.*

## De huidige span ophalen

U kunt ook de huidige span ophalen met de tracer die is geïnitialiseerd tijdens de [installatie](/go/installation):

<CodeGroup>
  ```go Go theme={null}
  func httpHandler(w http.ResponseWriter, r *http.Request) {
  	ctx := r.Context()
      span := trace.SpanFromContext(ctx)

  	// Set attributes
  }
  ```
</CodeGroup>

*Opmerking: dit retourneert alleen een span als er al een actief is.*

Meer manieren om spans aan te maken en op te halen, vindt u op de pagina over [OpenTelemetry-instrumentatie voor Go][manual].

## AppSignal-attributen

Zodra u een span hebt aangemaakt of opgehaald, kunt u bepaalde AppSignal-specifieke attributen instellen om aan te passen hoe de gegevens in AppSignal binnenkomen.

<CodeGroup>
  ```go Go theme={null}
  span = // Create a new span or fetch the current span
  span.SetAttributes(attribute.String("attribute_name", "attribute value"))
  ```
</CodeGroup>

Zie onze handleidingen voor meer informatie over welke aangepaste AppSignal-attributen worden ondersteund:

* [Tagging-handleiding](/guides/tagging)
* [Handleiding voor het aanpassen van gegevens](/guides/custom-data)

[manual]: https://opentelemetry.io/docs/languages/go/instrumentation/
