Skip to main content

HiAgent Observe SDK

OpenTelemetry Trace

OpenTelemetry(OTel)是一个开源的、具备厂商中立性的可观测性框架。它提供了一组规范、API 和库,基于特定结构化数据建模,以输出应用程序的分布式追踪(Trace)、指标(Metrics)和日志(Log)数据。​ HiAgent 支持接收来自 OpenTelemetry 客户端上报的 Trace 数据并可视化展示,从而实现对应用程序的深度监控和分析。​ 基于 OpenTelemetry 客户端上报的流程图如下所示:​ ​ observe ​

OpenTelemetry Trace 集成方式​

通过 OpenTelemetry SDK 上报 Trace​,你可以使用各种语言的 OpenTelemetry SDK 将 Trace 数据上报到 HiAgent。通过 OpenTelemetry SDK 上报时,开发者需要直接在代码中引入 OpenTelemetry SDK 来创建和管理 Trace 数据(例如创建 Span、设置 Attribute、记录 Event 等)。这种方式需要开发者对 OpenTelemetry 的 SDK 有一定的了解,并在代码中明确实现埋点逻辑。

常见问题​

HiAgent 支持什么协议?​

HiAgent 不支持 GRPC 协议的 OpenTelemetry Endpoint,需使用 http/protobuf 协议。​以 Python 为例,配置示例如下:​ ​

import os
import time

from dotenv import load_dotenv
from hiagent_observe import client
from opentelemetry import trace

load_dotenv()


if __name__ == "__main__":
  try:
    # 初始化 OpenTelemetry Client,并且注入鉴权的 header
    # 鉴权的 header 每个小时会自动刷新
    client.init(
      # 配置为 HiAgent 的 OpenTelemetry Endpoint
      trace_endpoint=os.getenv("HIAGENT_TRACE_ENDPOINT"),
      # 配置为 HiAgent 的 Top Endpoint
      top_endpoint=os.getenv("HIAGENT_TOP_ENDPOINT"),
      product_code=os.getenv("HIAGENT_PRODUCT_CODE"),
      # 配置为 HiAgent 的个人中心申请的 access key
      ak=os.getenv("VOLC_ACCESSKEY"),
      # 配置为 HiAgent 的个人中心申请的 secret key
      sk=os.getenv("VOLC_SECRETKEY"),
      # 配置为 HiAgent 的自定义应用的 workspace id
      workspace_id=os.getenv("WORKSPACE_ID"),
      # 配置为 HiAgent 的自定义应用的 app id
      app_id=os.getenv("CUSTOM_APP_ID"),
    )
  except Exception as e:
    raise RuntimeError(e)

  tracer = trace.get_tracer("example-tracer") # 创建一个 Tracer

  for i in range(100000):
    with tracer.start_as_current_span("main-operation") as root_span:
      with tracer.start_as_current_span("do-work") as span:
        span.set_attributes(
          {
            "http.method": "GET",
            "http.route": "/api/work",
            "http.status_code": 200,
          }
        )
    print("push trace")
    time.sleep(2)

更完整的例子参考这里。

Metadata

Release files for hiagent-observe 3.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hiagent-observe 3.1.0
File Size Uploaded
hiagent_observe-3.1.0.tar.gz 154.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hiagent-observe 3.1.0
File Interpreter ABI Platform
hiagent_observe-3.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 315.0 kB

Release files / hiagent_observe-3.1.0.tar.gz

Download URL hiagent_observe-3.1.0.tar.gz
Size 154.3 kB
Tags Source
SHA-256 checksum
How to use checksums
ec81b09d852656b90046dbde109778e7a239fda0ff8a12d833d1802705960f92
BLAKE2b-256 checksum
How to use checksums
79483d0f4cc5c145d1faf21134939fa1a526f025afff49d60e65bfc4329da18a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / hiagent_observe-3.1.0-py3-none-any.whl

Download URL hiagent_observe-3.1.0-py3-none-any.whl
Size 160.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c498cffc04ac1d322b457ea0b9620f9d081f3ad5cb9a475827749553d236e048
BLAKE2b-256 checksum
How to use checksums
4b877877d5c98bdf2d0ba2e87f01175d0f4049724e941d1bc43f4f97e870a685
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release history Release notifications | RSS feed

This release

3.1.0 This release

2 release files

2.0.2

2 release files

2.0.1

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page