Go应用在不同场景下有不同的接入方式,本文介绍不同场景下Go应用的详细接入操作,接入后可以实现自动收集Trace信息、自动生成Metric指标、以及调用链检索、日志检索等功能。
OpenTelemetry是CNCF的一个可观测性项目,旨在提供可观测性领域的标准化方案,解决观测数据的数据模型、采集、处理、导出等的标准化问题,提供与三方vendor无关的服务。
如果您的应用已经接入了OpenTelemetry的SDK,APMPlus服务端可以接收OpenTelemetry上报的数据。接入APMPlus后,您将获得RED指标生成能力、Trace多维检索、单链路检索、拓扑生成等多项能力。
- OpenTelemetry Metrics转换为Prometheus Metrics时,存在一定限制:
- 不支持聚合方式为delta的数据。请不要修改SDK侧的默认聚合配置,保证SDK侧数据的聚合方式为cumulative。
- 工作区拥有独立的数据上报凭证,如需使用工作区进行数据管理和数据隔离,请确保 apmplus-opentelemetry-collector 组件已经升级至 v3.1.0 及以上版本。
可观测数据直接上报至 ApmPlus 服务端,支持用户通过 grpc、http/protobuf 等方式进行数据上报。
方式二:Otel Collector 转发【推荐】
APMPlusOpenTelemetryCollector是APMPlus基于OpenTelemetryCollector二次开发的数据采集器。您可以在集群中安装 Opentelemetry Collector 做数据转发,有两种安装方式:
- 通过 VKE 集群组件中心,白屏安装 apmplus-opentelemetry-collector 组件。此外,推荐同时安装 apmplus-server-agent 组件,可以实现主机、进程维度的指标数据采集。
-
完成代码编译之后,启动前通过环境变量设置 otel 相关的属性:
说明
<protocol> 建议填写 grpc
<apmplus_endpoint> 按地域(上海、北京...)和接入网络类型(公网、私网)不同,填写地址不同,详情至 apmplus 服务接入页面获取具体的 endpoint。更多详细说明参见:如何使用接入中心?。 说明
<protocol> 建议填写 grpc。
<service_name> 填写应用服务名称。
<collector_endpoint> 根据安装的 apmplus-opentelemetry-collector 版本,如果 >= 2.0.0 版本,填写 http://apmplus-opentelemetry-gateway-service-grpc.apmplus-opentelemetry-operator:4317,低于该版本则填写 http://apmplus-opentelemetry-gateway-service-grpc.kube-system:4317。
<workspace_name> 指定服务所属工作区的名称。
- 方式二:VKE 场景下,在 Yaml 中手动增加instrumentation.apmplus.volcengine.com/inject-sdk和instrumentation.apmplus.volcengine.com/workspace注解。
- 方式三:VKE 白屏修改工作负载。示例如下,修改完成后,重启业务 POD。
-
如果需要监控 Go 运行时指标,需要做如下操作:
- 启动应用时,增加设置环境变量,禁用已废弃的 runtime 指标
通过Jaeger接入
Jaeger是一款由Uber研发的开源分布式链路追踪系统。
对于已经集成Jaeger的已有系统,可以将jaeger的Trace数据上报到APMPlus,完成整体的全链路监控能力。
接入APMPlus后,您将获得RED指标生成能力、Trace多维检索、单链路检索、拓扑生成等多项能力。
Jaeger Agent接入
SDK将数据上报到Agent,Agent将数据上报到APMPlus服务端。
- 参考jaeger文档,通过UDP将Trace数据发送到Agent。
- 修改jaeger-agent启动参数,配置示例如下:
SDK直接上报
SDK采集数据,直接上报到APMPlus服务端。
- 通过公网配置 reporter 的示例代码如下所示:
- 通过私网配置 reporter 的示例代码如下所示:
通过Zipkin接入
Zipkin是一款由Twitter开源的分布式链路追踪系统,通过zipkin可以帮助您收集Trace数据。
对于已经集成Zipkin的系统,可以将已有的Trace数据上报到APMPlus,完成整体的全链路监控能力。
接入APMPlus后,您将获得RED指标生成能力、Trace多维检索、单链路检索、拓扑生成等多项APMPlus能力。
SDK采集数据,直接上报到APMPlus服务端。
通过SkyWalking接入
SkyWalking Agent采集数据,直接上报到APMPlus服务端。当前支持SkyWalking Trace、Meter、Log、JVM、CLR数据接入。
- Trace接入后,可以查看拓扑图、Trace分析、服务详情等数据。
- JVM、CLR接入后,可以在自定义指标中查看形如"skywalking_jvm_*"和"skywalking_clr_*"的指标。