|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
.NET Aplicativos
Instrumentação automática
A instrumentação automática para .NET pode capturar automaticamente rastros e métricas para uma variedade de bibliotecas e frameworks.
A instrumentação automática não requer nenhuma modificação do aplicativo. Para configurá-la, siga estas etapas:
-
Baixe a versão glibc ou musl das bibliotecas de instrumentação (musl para Alpine, glibc para a maioria das outras imagens docker) do Releases do repositório opentelemetry-dotnet-instrumentation. Descompacte os arquivos e inclua-os na imagem docker do seu aplicativo em um diretório, aqui usamos
/autoinstrumentation. -
Defina as seguintes variáveis de ambiente, aqui fazemos isso via
envdo contêiner na especificação do pod Kubernetes:env: - name: CORECLR_ENABLE_PROFILING value: "1" - name: CORECLR_PROFILER value: "{918728DD-259F-4A6A-AC2B-B85E1B658318}" - name: CORECLR_PROFILER_PATH # for glibc: value: "/autoinstrumentation/linux-x64/OpenTelemetry.AutoInstrumentation.Native.so" # For musl use instead: # value: "/autoinstrumentation/linux-musl-x64/OpenTelemetry.AutoInstrumentation.Native.so" - name: DOTNET_ADDITIONAL_DEPS value: "/autoinstrumentation/AdditionalDeps" - name: DOTNET_SHARED_STORE value: "/autoinstrumentation/store" - name: DOTNET_STARTUP_HOOKS value: "/autoinstrumentation/net/OpenTelemetry.AutoInstrumentation.StartupHook.dll" - name: OTEL_DOTNET_AUTO_HOME value: "/autoinstrumentation" -
Adicione também as variáveis de ambiente extras para configurar o nome do serviço e o endpoint do exportador no pod, os protocolos suportados são gRPC e protobuf sobre HTTP.
-
Implante seu aplicativo com as alterações
-
Verifique se a SUSE Observability está recebendo rastros e/ou métricas buscando as métricas / rastros no explorador de métricas / rastros pelo nome do seu serviço
Para mais detalhes, consulte a documentação do Open Telemetry.
Instrumentação manual
A instrumentação manual pode ser usada quando você precisa de métricas, rastros ou logs de partes do código que não são suportadas pela instrumentação automática. Por exemplo, bibliotecas não suportadas, código interno ou métricas de nível de negócios.
Para capturar esses dados, você precisa modificar seu aplicativo.
-
Inclua o SDK do Open Telemetry como uma dependência
-
Adicione código ao seu aplicativo para capturar métricas, spans ou logs onde necessário
Há documentação detalhada sobre isso nas Páginas de documentação do SDK .NET do Open Telemetry.
Certifique-se de usar o exportador OTLP (este é o padrão) e auto-configuração. Ao implantar o aplicativo, o nome do serviço e o exportador são configurados via variáveis de ambiente.
Métricas no SUSE Observability
Para algumas métricas .NET, por exemplo, métricas do coletor de lixo, o SUSE Observability definiu gráficos sobre os componentes relacionados. Para Kubernetes, os gráficos estão disponíveis nos pods. É possível adicionar gráficos para mais métricas, isso funciona para métricas de instrumentação automática, mas também para métricas específicas do aplicativo de instrumentação manual.