Passer au contenu principal
AppSignal pour Go peut être configuré via les attributs de ressource OpenTelemetry. Les attributs de ressource sont des attributs qui s’appliquent à chaque trace reportée depuis l’application utilisant OpenTelemetry. Ces attributs de ressource doivent être configurés dans votre application, là où vous configurez également l’exportateur OpenTelemetry pour exporter vers le collecteur AppSignal. Pour configurer les attributs de ressource, ajoutez une ressource à votre tracer provider comme indiqué ci-dessous.
Go
import (
	// Other imports here...

	// Import these OpenTelemetry packages
	"go.opentelemetry.io/otel"
	"go.opentelemetry.io/otel/attribute"
	"go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp"
	"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp"
	"go.opentelemetry.io/otel/exporters/otlp/otlptrace"
	"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp"
	"go.opentelemetry.io/otel/log/global"
	"go.opentelemetry.io/otel/propagation"
	sdklog "go.opentelemetry.io/otel/sdk/log"
	sdkmetric "go.opentelemetry.io/otel/sdk/metric"
	sdkresource "go.opentelemetry.io/otel/sdk/resource"
	sdktrace "go.opentelemetry.io/otel/sdk/trace"
)

func initTracer() func(context.Context) error {
	// OpenTelemetry config setup here

	resource, err := sdkresource.Merge(
		sdkresource.Default(),
		sdkresource.NewSchemaless(
			resource.WithAttributes(attribute.String("appsignal.config.name", "My app name")),

			// And other resource attributes
		),
	)

	tracerProvider := sdktrace.NewTracerProvider(
		// Including other `.With...` function calls
		sdktrace.WithResource(resource),
	)

	// Followed by the rest of the OpenTelemetry config
}

Options disponibles

environment

ChampValeur
Clé de l’attribut de ressourceappsignal.config.environment
Obligatoireoui
TypeString
Valeur par défautnil (non défini par défaut)

Description

L’environnement de l’application à signaler à AppSignal.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.String("appsignal.config.environment", "production")),

		// And other resource attributes
	),
)
Remarque : Modifier le nom ou l’environnement d’une application existante créera une nouvelle application sur AppSignal.com.

host.name

ChampValeur
Clé de l’attribut de ressourcehost.name
Obligatoireoui
TypeString
Valeur par défautdétectée depuis le système

Description

L’attribut de ressource host.name aide AppSignal à reconnaître différents hôtes pour les traces et à étiqueter automatiquement les traces avec le nom d’hôte.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.String("host.name", "my-hostname")),

		// And other resource attributes
	),
)

language_integration

ChampValeur
Clé de l’attribut de ressourceappsignal.config.language_integration
Obligatoireoui
TypeString
Valeur par défautnil (non défini par défaut)

Description

AppSignal utilise l’attribut de ressource language_integration pour détecter le langage d’une trace et analyser correctement les traces d’appels d’exception. Pour définir cette option, spécifiez le nom du langage en minuscules : go.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.String("appsignal.config.language_integration", "go")),

		// And other resource attributes
	),
)

name

ChampValeur
Clé de l’attribut de ressourceappsignal.config.name
Obligatoireoui
TypeString
Valeur par défautnil (non défini par défaut)

Description

Nom de votre application tel qu’il doit être affiché sur AppSignal.com.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.String("appsignal.config.name", "My awesome app")),

		// And other resource attributes
	),
)
Remarque : Modifier le nom ou l’environnement d’une application existante créera une nouvelle application sur AppSignal.com.

push_api_key

ChampValeur
Clé de l’attribut de ressourceappsignal.config.push_api_key
Obligatoireoui
TypeString
Valeur par défautnil (non défini par défaut)

Description

La clé d’authentification au niveau de l’organisation pour s’authentifier auprès de notre Push API. En savoir plus sur la clé Push API AppSignal.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.String("appsignal.config.push_api_key", "00000000-0000-0000-0000-000000000000")),

		// And other resource attributes
	),
)

revision

ChampValeur
Clé de l’attribut de ressourceappsignal.config.revision
Obligatoireoui
TypeString
Valeur par défautnil (non défini par défaut)

Description

Définissez la révision de l’application pour signaler la version actuellement en cours d’exécution de votre application. AppSignal créera un marqueur de déploiement lorsque cette valeur change, et étiquetera toutes les données entrantes avec la révision actuelle. En savoir plus sur les marqueurs de déploiement dans le sujet sur les marqueurs de déploiement.
Go
import (
	"os/exec"

	// And other imports
)

var revision string
cmd := exec.Command("git", "rev-parse", "--short", "HEAD")
output, err := cmd.Output()
if err != nil {
	revision = "unknown"
} else {
	revision = strings.TrimSpace(string(output))
}

resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.String("appsignal.config.revision", revision)),

		// And other resource attributes
	),
)

service.name

ChampValeur
Clé de l’attribut de ressourceservice.name
Obligatoireoui
TypeString
Valeur par défautnil (non défini par défaut)

Description

L’attribut de ressource service.name aide AppSignal à reconnaître différents services pour les traces et regroupe automatiquement les traces dans un espace de noms basé sur le nom du service. Choisissez un nom qui correspond à votre application, comme “Serveur web”, “Worker en arrière-plan”, “Service de messagerie”, “Service d’authentification”, etc.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.String("service.name", "My service name")),

		// And other resource attributes
	),
)

app_path

ChampValeur
Clé de l’attribut de ressourceappsignal.config.app_path
Obligatoirenon
TypeString
Valeur par défautnil (non défini par défaut)

Description

L’emplacement de l’application sur le système de fichiers de l’hôte. L’attribut de ressource app_path aide AppSignal à nettoyer les traces d’appels en supprimant le chemin absolu de l’application des lignes de trace. Ainsi, seuls les chemins dans le contexte du répertoire du projet sont affichés. Cela rend possible notre fonctionnalité liens de traces d’appels.
Go
import (
	"os"

	// And other imports
)

resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.String("appsignal.config.app_path", os.Getenv("PWD"))),

		// And other resource attributes
	),
)

filter_attributes

ChampValeur
Clé de l’attribut de ressourceappsignal.config.filter_attributes
Obligatoirenon
Typelist(String)
Valeur par défaut[]

Description

L’attribut de ressource filter_attributes vous permet de filtrer certains attributs pour qu’ils ne soient pas signalés à AppSignal. Cela peut être utile pour empêcher la transmission d’informations sensibles ou non pertinentes. Si un attribut est filtré de cette manière, il n’apparaîtra pas du tout dans l’interface.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.StringSlice("appsignal.config.filter_attributes", []string{"my.secret.attribute", "some.opentelemetry.attribute"})),

		// And other resource attributes
	),
)

filter_function_parameters

ChampValeur
Clé de l’attribut de ressourceappsignal.config.filter_function_parameters
Obligatoirenon
Typelist(String)
Valeur par défaut[]

Description

Cet attribut de ressource vous permet de filtrer les paramètres de fonction définis dans l’attribut de span appsignal.function.parameters. Dans l’exemple ci-dessous, les valeurs des clés listées dans l’option de configuration filter_function_parameters sont remplacées par [FILTERED].
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.StringSlice("appsignal.config.filter_function_parameters", []string{"api_token", "secret"})),

		// And other resource attributes
	),
)

filter_request_payload

ChampValeur
Clé de l’attribut de ressourceappsignal.config.filter_request_payload
Obligatoirenon
Typelist(String)
Valeur par défaut[]

Description

Cet attribut de ressource vous permet de filtrer les données de charge utile de requête définies dans l’attribut de span appsignal.request.payload. Dans l’exemple ci-dessous, les valeurs des clés listées dans l’option de configuration filter_request_payload sont remplacées par [FILTERED]. En savoir plus sur le filtrage des paramètres de requête.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.StringSlice("appsignal.config.filter_request_payload", []string{"password", "cvv"})),

		// And other resource attributes
	),
)

filter_request_query_parameters

ChampValeur
Clé de l’attribut de ressourceappsignal.config.filter_request_query_parameters
Obligatoirenon
Typelist(String)
Valeur par défaut[]

Description

Cet attribut de ressource vous permet de filtrer les paramètres de requête définis dans l’attribut de span appsignal.request.query_parameters. Dans l’exemple ci-dessous, les valeurs des clés listées dans l’option de configuration filter_request_query_parameters sont remplacées par [FILTERED]. En savoir plus sur le filtrage des paramètres de requête.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.StringSlice("appsignal.config.filter_request_query_parameters", []string{"password", "cvv"})),

		// And other resource attributes
	),
)

filter_request_session_data

ChampValeur
Clé de l’attribut de ressourceappsignal.config.filter_request_session_data
Obligatoirenon
Typelist(String)
Valeur par défaut[]

Description

L’attribut de ressource filter_request_session_data vous permet de filtrer les données de session de requête définies dans l’attribut de span appsignal.request.session_data. Dans l’exemple ci-dessous, les valeurs des clés listées dans l’option de configuration filter_request_session_data sont remplacées par [FILTERED]. En savoir plus sur le filtrage des données de session de requête.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.StringSlice("appsignal.config.filter_session_data", []string{"password", "cvv"})),

		// And other resource attributes
	),
)

ignore_actions

ChampValeur
Clé de l’attribut de ressourceappsignal.config.ignore_actions
Obligatoirenon
Typelist(String)
Valeur par défaut[]

Description

Avec cette option de configuration, vous pouvez spécifier une liste d’actions qui seront ignorées par AppSignal. Tout ce qui se passe, y compris les exceptions, ne sera pas transmis à AppSignal. Cela peut être utile pour ignorer les points de terminaison de vérification d’état ou d’autres actions que vous ne souhaitez pas surveiller. En savoir plus sur l’ignorance des actions.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.StringSlice("appsignal.config.ignore_actions", []string{"GET /heath_check", "POST /ping"})),

		// And other resource attributes
	),
)

ignore_errors

ChampValeur
Clé de l’attribut de ressourceappsignal.config.ignore_errors
Obligatoirenon
Typelist(String)
Valeur par défaut[]

Description

Cette option de configuration vous permet d’empêcher que certaines erreurs soient signalées à AppSignal. Cela peut être utile pour ignorer les erreurs attendues ou les erreurs qui ne peuvent pas être résolues. En savoir plus sur l’ignorance des erreurs.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.StringSlice("appsignal.config.ignore_errors", []string{"MyCustomError", "ExpectedError"})),

		// And other resource attributes
	),
)

ignore_logs

ChampValeur
Clé de l’attribut de ressourceappsignal.config.ignore_logs
Obligatoirenon
Typelist(String)
Valeur par défaut[]

Description

Liste des messages de journal qui seront ignorés. Tout message de journal contenant l’un des éléments de la liste ne sera pas transmis à AppSignal. Un petit sous-ensemble de la syntaxe regex est pris en charge, en savoir plus à ce sujet dans notre guide Ignorer les journaux.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.StringSlice("appsignal.config.ignore_logs", []string{"^done$", "Task .* completed successfully"})),

		// And other resource attributes
	),
)

ignore_namespaces

ChampValeur
Clé de l’attribut de ressourceappsignal.config.ignore_namespaces
Obligatoirenon
Typelist(String)
Valeur par défaut[]

Description

Cette option de configuration vous permet d’empêcher que certains espaces de noms soient signalés à AppSignal. Cela peut être utile pour empêcher la surveillance de certaines parties de votre application. En savoir plus sur les espaces de noms.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.StringSlice("appsignal.config.ignore_namespaces", []string{"admin", "secret"})),

		// And other resource attributes
	),
)

request_headers

ChampValeur
Clé de l’attribut de ressourceappsignal.config.request_headers
Obligatoirenon
Typelist(String)
Valeur par défaut["accept", "accept-charset", "accept-encoding", "accept-language", "cache-control", "connection", "content-length", "host", "range"]

Description

Configurez les en-têtes de requête à inclure lorsqu’une requête est faite à un serveur HTTP. Cette option est une liste d’autorisation. Elle n’inclut que les en-têtes configurés. Si la liste est vide, aucun en-tête n’est inclus. Les en-têtes de requête sont lus à partir des attributs de span OpenTelemetry http.request.header.<key>, où <key> est le nom d’en-tête normalisé (en minuscules). Pour ne définir aucun en-tête, définissez explicitement la valeur de l’attribut de ressource sur un tableau vide.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		// Only send these specific headers
		resource.WithAttributes(attribute.StringSlice("appsignal.config.request_headers", []string{"accept", "request_method", "content_length"})),

		// Do not send any headers
		// resource.WithAttributes(attribute.StringSlice("appsignal.config.request_headers", []string{})),

		// And other resource attributes
	),
)

response_headers

ChampValeur
Clé de l’attribut de ressourceappsignal.config.response_headers
Obligatoirenon
Typelist(String)
Valeur par défaut["accept", "accept-charset", "accept-encoding", "accept-language", "cache-control", "connection", "content-length", "host", "range"]

Description

Configurez les en-têtes de réponse à inclure lorsqu’une requête est effectuée par un client HTTP. Cette option est une liste d’autorisation. Elle n’inclut que les en-têtes configurés. Si la liste est vide, aucun en-tête n’est inclus. Les en-têtes de réponse sont lus à partir des attributs de span OpenTelemetry http.response.header.<key>, où <key> est le nom d’en-tête normalisé (en minuscules). Pour ne définir aucun en-tête, définissez explicitement la valeur de l’attribut de ressource sur un tableau vide.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		// Only send these specific headers
		resource.WithAttributes(attribute.StringSlice("appsignal.config.response_headers", []string{"accept", "request_method", "content_length"})),

		// Do not send any headers
		// resource.WithAttributes(attribute.StringSlice("appsignal.config.response_headers", []string{})),

		// And other resource attributes
	),
)

send_function_parameters

ChampValeur
Clé de l’attribut de ressourceappsignal.config.send_function_parameters
Obligatoirenon
TypeBooléen (true / false)
Valeur par défauttrue

Description

Configurez s’il faut inclure les paramètres de fonction dans les traces. Si défini sur false, aucune de ces données n’est envoyée à nos serveurs. Ces valeurs sont définies avec l’attribut de span appsignal.function.parameters.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.Bool("appsignal.config.send_function_parameters", false)),

		// And other resource attributes
	),
)

send_request_payload

ChampValeur
Clé de l’attribut de ressourceappsignal.config.send_request_payload
Obligatoirenon
TypeBooléen (true / false)
Valeur par défauttrue

Description

Configurez s’il faut envoyer les données de charge utile de requête dans les traces. Si défini sur false, aucune de ces données n’est envoyée à nos serveurs. Ces valeurs sont définies avec l’attribut de span appsignal.request.payload. Pour plus d’informations, veuillez consulter le filtrage des charges utiles de requête.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.Bool("appsignal.config.send_request_payload", false)),

		// And other resource attributes
	),
)

send_request_query_parameters

ChampValeur
Clé de l’attribut de ressourceappsignal.config.send_request_query_parameters
Obligatoirenon
TypeBooléen (true / false)
Valeur par défauttrue

Description

Configurez s’il faut inclure les paramètres de requête dans les traces. Si défini sur false, aucune de ces données n’est envoyée à nos serveurs. Ces valeurs sont définies avec l’attribut de span appsignal.request.query_parameters. Pour plus d’informations, veuillez consulter le filtrage des paramètres de requête.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.Bool("appsignal.config.send_request_query_parameters", false)),

		// And other resource attributes
	),
)

send_request_session_data

ChampValeur
Clé de l’attribut de ressourceappsignal.config.send_request_session_data
Obligatoirenon
TypeBooléen (true / false)
Valeur par défauttrue

Description

Configurez s’il faut envoyer les données de session de requête dans les traces. Si défini sur false, aucune de ces données n’est envoyée à nos serveurs. Ces valeurs sont définies avec l’attribut de span appsignal.request.session_data. Pour plus d’informations, veuillez consulter le filtrage des données de session de requête.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.Bool("appsignal.config.send_session_data", false)),

		// And other resource attributes
	),
)