|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
.NET 应用程序
自动仪器化
自动仪器化不需要对应用程序进行任何修改。要设置它,请按照以下步骤操作:
-
从 opentelemetry-dotnet-instrumentation 储存库的 发布 下载 glibc 或 musl 版本的工具库(musl 用于 Alpine,glibc 用于大多数其他 Docker 镜像)。解压文件并将其包含在您的应用程序 Docker 镜像中的一个目录中,这里我们使用
/autoinstrumentation。 -
设置以下环境变量,这里我们通过 Kubernetes pod 规格中容器的
env来设置: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" -
还要在 pod 上添加额外的环境变量 以配置服务名称和导出器端点,支持的协议是 gRPC 和通过 HTTP 的 protobuf。
-
使用这些更改部署您的应用程序
-
通过在您的服务名称的指标/跟踪浏览器中搜索指标/跟踪,验证 SUSE Observability 是否正在接收跟踪和/或指标
有关更多详细信息,请参阅 Open Telemetry 文档。
手动仪器化
当您需要从不支持自动仪器化的代码部分获取指标、跟踪或日志时,可以使用手动仪器化。例如不支持的库、自家代码或业务级指标。
要捕获这些数据,您需要修改您的应用程序。
-
将 Open Telemetry SDK 作为依赖项包含
-
在您的应用程序中添加代码,以在需要的地方捕获指标、跨度或日志
有关此内容的详细文档请参见 Open Telemetry .NET SDK 文档页面。
SUSE Observability 中的指标
对于某些 .NET 指标,例如垃圾收集器指标,SUSE Observability 已在相关组件上定义了图表。对于 Kubernetes,图表可在 Pod 上获得。可以 为更多指标添加图表,这适用于自动仪器化的指标,也适用于手动仪器化的应用程序特定指标。