Pular para o conteúdo principal
O AppSignal for Go pode ser configurado através de atributos de resource do OpenTelemetry. Atributos de resource são atributos aplicados a cada trace reportado pela aplicação usando OpenTelemetry. Esses atributos de resource devem ser configurados na sua aplicação, onde você também configura o exporter do OpenTelemetry para exportar dados para o collector do AppSignal. Para configurar os atributos de resource, adicione um resource ao seu tracer provider conforme mostrado abaixo.
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
}

Opções disponíveis

environment

CampoValor
Chave do atributo de recursoappsignal.config.environment
Obrigatóriosim
TipoString
Valor padrãonil (Não definido por padrão)

Descrição

O ambiente da aplicação a ser reportado ao AppSignal.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.String("appsignal.config.environment", "production")),

		// And other resource attributes
	),
)
Observação: Alterar o nome ou o ambiente de uma aplicação existente criará uma nova aplicação no AppSignal.com.

host.name

CampoValor
Chave do atributo de recursohost.name
Obrigatóriosim
TipoString
Valor padrãodetectado a partir do sistema

Descrição

O atributo de recurso host.name ajuda o AppSignal a reconhecer diferentes hosts para os traces e marcar automaticamente os traces com o hostname.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.String("host.name", "my-hostname")),

		// And other resource attributes
	),
)

language_integration

CampoValor
Chave do atributo de recursoappsignal.config.language_integration
Obrigatóriosim
TipoString
Valor padrãonil (Não definido por padrão)

Descrição

O AppSignal usa o atributo de recurso language_integration para detectar a linguagem de um trace e analisar corretamente os backtraces de exceções. Para definir esta opção, especifique o nome da linguagem em formato minúsculo: go.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.String("appsignal.config.language_integration", "go")),

		// And other resource attributes
	),
)

name

CampoValor
Chave do atributo de recursoappsignal.config.name
Obrigatóriosim
TipoString
Valor padrãonil (Não definido por padrão)

Descrição

Nome da sua aplicação como ela deve ser exibida no 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
	),
)
Observação: Alterar o nome ou o ambiente de uma aplicação existente criará uma nova aplicação no AppSignal.com.

push_api_key

CampoValor
Chave do atributo de recursoappsignal.config.push_api_key
Obrigatóriosim
TipoString
Valor padrãonil (Não definido por padrão)

Descrição

A chave de autenticação no nível da organização para autenticar com a nossa Push API. Saiba mais sobre a chave da Push API do 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

CampoValor
Chave do atributo de recursoappsignal.config.revision
Obrigatóriosim
TipoString
Valor padrãonil (Não definido por padrão)

Descrição

Define a revisão da aplicação para reportar a versão atualmente em execução da sua aplicação. O AppSignal criará um marcador de deploy quando este valor mudar e marcará todos os dados recebidos com a revisão atual. Saiba mais sobre marcadores de deploy no tópico de marcadores de deploy.
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

CampoValor
Chave do atributo de recursoservice.name
Obrigatóriosim
TipoString
Valor padrãonil (Não definido por padrão)

Descrição

O atributo de recurso service.name ajuda o AppSignal a reconhecer diferentes serviços nos traces e agrupa-os automaticamente em um namespace baseado no nome do serviço. Escolha um nome que se adeque à sua aplicação, como “Web server”, “Background worker”, “Email service”, “Authentication service”, 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

CampoValor
Chave do atributo de recursoappsignal.config.app_path
Obrigatórionão
TipoString
Valor padrãonil (Não definido por padrão)

Descrição

A localização da aplicação no sistema de arquivos do host. O atributo de recurso app_path ajuda o AppSignal a limpar os backtraces removendo o caminho absoluto da aplicação das linhas do backtrace. Dessa forma, apenas os caminhos dentro do contexto do diretório do projeto são exibidos. Isso possibilita o nosso recurso de Backtrace links.
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

CampoValor
Chave do atributo de recursoappsignal.config.filter_attributes
Obrigatórionão
Tipolist(String)
Valor padrão[]

Descrição

O atributo de recurso filter_attributes permite filtrar atributos específicos para que não sejam reportados ao AppSignal. Isso pode ser útil para filtrar informações sensíveis ou irrelevantes. Se um atributo for filtrado dessa forma, ele não aparecerá na interface de forma alguma.
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

CampoValor
Chave do atributo de recursoappsignal.config.filter_function_parameters
Obrigatórionão
Tipolist(String)
Valor padrão[]

Descrição

Este atributo de recurso permite filtrar quaisquer parâmetros de função definidos no atributo de span appsignal.function.parameters. No exemplo abaixo, os valores das chaves listadas na opção de configuração filter_function_parameters são substituídos por [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

CampoValor
Chave do atributo de recursoappsignal.config.filter_request_payload
Obrigatórionão
Tipolist(String)
Valor padrão[]

Descrição

Este atributo de recurso permite filtrar quaisquer dados de payload de requisição definidos no atributo de span appsignal.request.payload. No exemplo abaixo, os valores das chaves listadas na opção de configuração filter_request_payload são substituídos por [FILTERED]. Saiba mais sobre filtragem de parâmetros de query de requisição.
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

CampoValor
Chave do atributo de recursoappsignal.config.filter_request_query_parameters
Obrigatórionão
Tipolist(String)
Valor padrão[]

Descrição

Este atributo de recurso permite filtrar quaisquer parâmetros de query de requisição definidos no atributo de span appsignal.request.query_parameters. No exemplo abaixo, os valores das chaves listadas na opção de configuração filter_request_query_parameters são substituídos por [FILTERED]. Saiba mais sobre filtragem de parâmetros de query de requisição.
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

CampoValor
Chave do atributo de recursoappsignal.config.filter_request_session_data
Obrigatórionão
Tipolist(String)
Valor padrão[]

Descrição

O atributo de recurso filter_request_session_data permite filtrar quaisquer dados de sessão de requisição definidos no atributo de span appsignal.request.session_data. No exemplo abaixo, os valores das chaves listadas na opção de configuração filter_request_session_data são substituídos por [FILTERED]. Saiba mais sobre filtragem de dados de sessão de requisição.
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

CampoValor
Chave do atributo de recursoappsignal.config.ignore_actions
Obrigatórionão
Tipolist(String)
Valor padrão[]

Descrição

Com esta opção de configuração você pode especificar uma lista de ações que serão ignoradas pelo AppSignal. Tudo que acontecer, incluindo exceções, não será transmitido para o AppSignal. Isso pode ser útil para ignorar endpoints de health check ou outras ações que você não deseja monitorar. Saiba mais sobre ignorar ações.
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

CampoValor
Chave do atributo de recursoappsignal.config.ignore_errors
Obrigatórionão
Tipolist(String)
Valor padrão[]

Descrição

Esta opção de configuração permite ignorar erros específicos para que não sejam reportados ao AppSignal. Isso pode ser útil para ignorar erros esperados ou erros que não podem ser solucionados. Saiba mais sobre ignorar erros.
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

CampoValor
Chave do atributo de recursoappsignal.config.ignore_logs
Obrigatórionão
Tipolist(String)
Valor padrão[]

Descrição

Lista de mensagens de log que serão ignoradas. Qualquer mensagem de log que contenha qualquer um dos elementos da lista não será transmitida ao AppSignal. Um pequeno subconjunto da sintaxe regex é suportado; saiba mais em nosso guia Ignorar Logs.
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

CampoValor
Chave do atributo de recursoappsignal.config.ignore_namespaces
Obrigatórionão
Tipolist(String)
Valor padrão[]

Descrição

Esta opção de configuração permite ignorar namespaces específicos para que não sejam reportados ao AppSignal. Isso pode ser útil para ignorar partes específicas da sua aplicação no monitoramento. Saiba mais sobre namespaces.
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

CampoValor
Chave do atributo de recursoappsignal.config.request_headers
Obrigatórionão
Tipolist(String)
Valor padrão["accept", "accept-charset", "accept-encoding", "accept-language", "cache-control", "connection", "content-length", "host", "range"]

Descrição

Configure quais cabeçalhos de requisição devem ser incluídos quando uma requisição é feita a um servidor HTTP. Esta opção é uma allowlist (lista de permissões). Ela inclui apenas os cabeçalhos que estão configurados. Se a lista estiver vazia, nenhum cabeçalho será incluído. Os cabeçalhos de requisição são lidos a partir dos atributos de span do OpenTelemetry http.request.header.<key>, onde <key> é o nome normalizado do cabeçalho (minúsculas). Para não definir nenhum cabeçalho, defina explicitamente o valor do atributo de recurso como um array vazio.
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

CampoValor
Chave do atributo de recursoappsignal.config.response_headers
Obrigatórionão
Tipolist(String)
Valor padrão["accept", "accept-charset", "accept-encoding", "accept-language", "cache-control", "connection", "content-length", "host", "range"]

Descrição

Configure quais cabeçalhos de resposta devem ser incluídos quando uma requisição é feita por um cliente HTTP. Esta opção é uma allowlist (lista de permissões). Ela inclui apenas os cabeçalhos que estão configurados. Se a lista estiver vazia, nenhum cabeçalho será incluído. Os cabeçalhos de resposta são lidos a partir dos atributos de span do OpenTelemetry http.response.header.<key>, onde <key> é o nome normalizado do cabeçalho (minúsculas). Para não definir nenhum cabeçalho, defina explicitamente o valor do atributo de recurso como um array vazio.
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

CampoValor
Chave do atributo de recursoappsignal.config.send_function_parameters
Obrigatórionão
TipoBooleano (true / false)
Valor padrãotrue

Descrição

Configura se deve-se incluir parâmetros de função nos traces. Se definido como false, esses dados não são enviados aos nossos servidores. Esses valores são definidos com o atributo 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

CampoValor
Chave do atributo de recursoappsignal.config.send_request_payload
Obrigatórionão
TipoBooleano (true / false)
Valor padrãotrue

Descrição

Configura se deve-se enviar dados de payload de requisição nos traces. Se definido como false, esses dados não são enviados aos nossos servidores. Esses valores são definidos com o atributo de span appsignal.request.payload. Para mais informações, leia sobre filtragem de payload de requisição.
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

CampoValor
Chave do atributo de recursoappsignal.config.send_request_query_parameters
Obrigatórionão
TipoBooleano (true / false)
Valor padrãotrue

Descrição

Configura se deve-se incluir parâmetros de query da requisição nos traces. Se definido como false, esses dados não são enviados aos nossos servidores. Esses valores são definidos com o atributo de span appsignal.request.query_parameters. Para mais informações, leia sobre filtragem de parâmetros de requisição.
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

CampoValor
Chave do atributo de recursoappsignal.config.send_request_session_data
Obrigatórionão
TipoBooleano (true / false)
Valor padrãotrue

Descrição

Configura se deve-se enviar dados de sessão de requisição nos traces. Se definido como false, esses dados não são enviados aos nossos servidores. Esses valores são definidos com o atributo de span appsignal.request.session_data. Para mais informações, leia sobre filtragem de dados de sessão de requisição.
Go
resource, err := sdkresource.Merge(
	sdkresource.Default(),
	sdkresource.NewSchemaless(
		resource.WithAttributes(attribute.Bool("appsignal.config.send_session_data", false)),

		// And other resource attributes
	),
)