Naar hoofdinhoud gaan
AppSignal is compatibel met OpenTelemetry-instrumentatiepakketten. Sommige van deze instrumentatiepakketten 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 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.
import (
	"go.opentelemetry.io/otel"
	"go.opentelemetry.io/otel/attribute"
	"go.opentelemetry.io/otel/trace"
)

Een nieuwe span aanmaken

Maak een nieuwe span aan met de tracer die is geïnitialiseerd tijdens de installatie.
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
}
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:
func httpHandler(w http.ResponseWriter, r *http.Request) {
	ctx := r.Context()
    span := trace.SpanFromContext(ctx)

	// Set attributes
}
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.

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.
span = // Create a new span or fetch the current span
span.SetAttributes(attribute.String("attribute_name", "attribute value"))
Zie onze handleidingen voor meer informatie over welke aangepaste AppSignal-attributen worden ondersteund: