Configuração da camada Lambda do Collector
A comunidade OpenTelemetry disponibiliza o Collector em uma camada Lambda separada das camadas de instrumentação, dando aos usuários o máximo de flexibilidade. Isso é diferente da implementação atual do AWS Distribution of OpenTelemetry (ADOT), que reúne a instrumentação e o Collector em um só pacote.
Adicione o ARN da camada Lambda do OTel Collector
Depois de instrumentar sua aplicação, adicione a camada Lambda do Collector para coletar e enviar seus dados ao backend escolhido.
Encontre o
lançamento mais recente da camada do Collector
e use o respectivo ARN após substituir a tag <region> pela região onde seu
Lambda está localizado.
Observação: as camadas Lambda são um recurso regionalizado, ou seja, só podem ser usadas na região em que foram publicadas. Certifique-se de usar a camada na mesma região das suas funções Lambda. A comunidade publica camadas em todas as regiões disponíveis.
Configure o OTel Collector
A configuração da camada Lambda do OTel Collector segue o padrão do OpenTelemetry.
Por padrão, a camada Lambda do OTel Collector usa o arquivo config.yaml.
Configure a variável de ambiente do seu backend preferido
Nas configurações de variáveis de ambiente do Lambda, crie uma nova variável para armazenar seu token de autorização.
Atualize os exporters padrão
No arquivo config.yaml, adicione seu(s) exportador(es) preferido(s), caso
ainda não estejam presentes. Configure o(s) exportador(es) com as variáveis de
ambiente definidas para os tokens de acesso na etapa anterior.
Sem uma variável de ambiente definida para os exportadores, a configuração
padrão só permite exportar dados usando o exportador debug. Veja a
configuração padrão:
receivers:
otlp:
protocols:
grpc:
endpoint: '0.0.0.0:4317'
http:
endpoint: '0.0.0.0:4318'
exporters:
# NOTE: Prior to v0.86.0 use `logging` instead of `debug`.
debug:
verbosity: detailed
service:
pipelines:
traces:
receivers: [otlp]
exporters: [debug]
metrics:
receivers: [otlp]
exporters: [debug]
telemetry:
metrics:
address: localhost:8888
Publique seu Lambda
Publique uma nova versão do seu Lambda para habilitar as alterações feitas.
Configuração avançada do OTel Collector
Confira a lista de componentes disponíveis com suporte para configuração
personalizada. Para habilitar depuração, defina o nível de log como debug no
arquivo de configuração. Veja o exemplo abaixo.
Escolha seu provedor confmap preferido
As camadas Lambda do OTel oferecem suporte aos seguintes tipos de provedores
confmap: file, env, yaml, http, https e s3. Para personalizar a
configuração do OTel Collector usando diferentes provedores confmap e outras
informações, consulte a
documentação de provedores confmap do Amazon Distribution of OpenTelemetry.
Crie um arquivo de configuração personalizado
Veja um exemplo de arquivo de configuração collector.yaml no diretório raiz:
#collector.yaml in the root directory
#Set an environment variable 'OPENTELEMETRY_COLLECTOR_CONFIG_URI' to '/var/task/collector.yaml'
receivers:
otlp:
protocols:
grpc:
endpoint: 'localhost:4317'
http:
endpoint: 'localhost:4318'
exporters:
# NOTE: Prior to v0.86.0 use `logging` instead of `debug`.
debug:
awsxray:
service:
pipelines:
traces:
receivers: [otlp]
exporters: [awsxray]
metrics:
receivers: [otlp]
exporters: [debug]
telemetry:
metrics:
address: localhost:8888
Mapeie seu arquivo de configuração personalizado usando variáveis de ambiente
Depois de definir a configuração do Collector por meio de um provedor confmap,
crie uma variável de ambiente na sua função Lambda chamada
OPENTELEMETRY_COLLECTOR_CONFIG_URI e defina como valor o caminho da
configuração de acordo com o provedor confmap usado. Por exemplo, se você
estiver usando um provedor confmap do tipo file, defina o valor como
/var/task/<path>/<to>/<filename>. Isso indica à extensão onde encontrar a
configuração do Collector.
Configuração personalizada do Collector usando a CLI
Você pode definir isso pelo console da AWS ou pela AWS CLI.
aws lambda update-function-configuration --function-name Function --environment Variables={OPENTELEMETRY_COLLECTOR_CONFIG_URI=/var/task/collector.yaml}
Defina variáveis de ambiente de configuração a partir do CloudFormation
Também é possível configurar variáveis de ambiente por meio de um template do CloudFormation:
Function:
Type: AWS::Serverless::Function
Properties:
...
Environment:
Variables:
OPENTELEMETRY_COLLECTOR_CONFIG_URI: /var/task/collector.yaml
Carregue a configuração a partir de um objeto do S3
Para carregar a configuração a partir do S3, a role do IAM associada à sua função precisa incluir acesso de leitura ao bucket correspondente.
Function:
Type: AWS::Serverless::Function
Properties:
...
Environment:
Variables:
OPENTELEMETRY_COLLECTOR_CONFIG_URI: s3://<bucket_name>.s3.<region>.amazonaws.com/collector_config.yaml
Feedback
Esta página foi útil?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!