<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Telemetry 功能 :: NJET文档</title>
    <link>https://docs.njet.org.cn/docs/v4.0.1/reference/http/telemetry/index.html</link>
    <description></description>
    <generator>Hugo</generator>
    <language>zh</language>
    <lastBuildDate>Mon, 18 Aug 2025 09:15:57 +0800</lastBuildDate>
    <atom:link href="https://docs.njet.org.cn/docs/v4.0.1/reference/http/telemetry/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>静态telemetry</title>
      <link>https://docs.njet.org.cn/docs/v4.0.1/reference/http/telemetry/static_telemetry/index.html</link>
      <pubDate>Mon, 18 Aug 2025 09:15:46 +0800</pubDate>
      <guid>https://docs.njet.org.cn/docs/v4.0.1/reference/http/telemetry/static_telemetry/index.html</guid>
      <description>1.功能描述 1.1 什么是OpenTelemetry？ OpenTelemetry合并了OpenTracing和OpenCensus项目，提供了一组API和库来标准化遥测数据的采集和传输。OpenTelemetry提供了一个安全，厂商中立的工具，这样就可以按照需要将数据发往不同的后端。&#xA;OpenTelemetry项目由如下组件构成：&#xA;推动在所有项目中使用一致的规范 基于规范的，包含接口和实现的APIs 不同语言的SDK(APIs的实现)，如 Java, Python, Go, Erlang等 Exporters：可以将数据发往一个选择的后端 Collectors：厂商中立的实现，用于处理和导出遥测数据 1.2 术语 Traces：记录经过分布式系统的请求活动，一个trace是spans的有向无环图 Spans：一个trace中表示一个命名的，基于时间的操作。Spans嵌套形成trace树。每个trace包含一个根span，描述了端到端的延迟，其子操作也可能拥有一个或多个子spans。 Metrics：在运行时捕获的关于服务的原始度量数据。Opentelemetry定义的metric instruments(指标工具)如下。Observer支持通过异步API来采集数据，每个采集间隔采集一个数据。 Context：一个span包含一个span context，它是一个全局唯一的标识，表示每个span所属的唯一的请求，以及跨服务边界转移trace信息所需的数据。OpenTelemetry 也支持correlation context，它可以包含用户定义的属性。correlation context不是必要的，组件可以选择不携带和存储该信息。 Context propagation：表示在不同的服务之间传递上下文信息，通常通过HTTP首部。Context propagation 是 OpenTelemetry 系统的关键功能之一。除了tracing之外，还有一些有趣的用法，如，执行A/B测试。OpenTelemetry支持通过多个协议的Context propagation来避免可能发生的问题，但需要注意的是，在自己的应用中最好使用单一的方法。 1.3 OpenTelemetry架构 opentelemetry也是个插件式的架构，针对不同的开发语言会有相应的Client组件，叫Instrumenttation，也就是在代码中埋点调用的api/sdk采集telemetry数据&#xA;NJet主要集成了分布式服务 telemetry 模块：&#xA;分布式服务追踪模块: njt_otel_module.so&#xA;2.指令介绍 2.1 分布式服务追踪模块: njt_otel_module.so opentelemetry 启用或禁用OpenTelemetry (默认为启用)。&#xA;required: false syntax: opentelemetry on|off block: http, server, location opentelemetry_trust_incoming_spans 启用或禁用使用传入请求的spans作为创建请求的父级。(默认值: 启用)。&#xA;required: false syntax: opentelemetry_trust_incoming_spans on|off block: http, server, location opentelemetry_attribute 向 span 添加自定义属性，可以访问 nginx 变量, 如： opentelemetry_attribute “my.user.agent” “$http_user_agent”.</description>
    </item>
    <item>
      <title>动态telemetry</title>
      <link>https://docs.njet.org.cn/docs/v4.0.1/reference/http/telemetry/dyn_telemetry/index.html</link>
      <pubDate>Mon, 18 Aug 2025 09:15:57 +0800</pubDate>
      <guid>https://docs.njet.org.cn/docs/v4.0.1/reference/http/telemetry/dyn_telemetry/index.html</guid>
      <description>1.依赖模块 上文控制面配置说明&#xA;njt_helper_broker_module&#xA;njt_ctrl_config_api_module.so;&#xA;本功能需要模块，因为本功能采用外部build，所以版本发布的时候提供对应的so&#xA;服务间追踪模块(Otel)依赖:&#xA;​ njt_otel_module.so&#xA;​ njt_agent_dyn_otel_module.so&#xA;服务间追踪模块(Otel-webserver)依赖:&#xA;​ njt_otel_webserver_module.so&#xA;​ njt_agent_dyn_otel_webserver_module.so&#xA;2.配置指令 无&#xA;3.配置示例 3.1 主要配置示例 # 分布式telemetry 动态开关需要加载这两个模块 load_module modules/njt_otel_module.so; load_module modules/njt_agent_dyn_otel_module.so; # telemetry-webserver 动态开关需要加载这两个模块 load_module modules/njt_otel_webserver_module.so; load_module modules/njt_agent_dyn_otel_webserver_module.so; worker_processes 1; error_log stderr info; # 注意修改为具体的文件路径，此配置为输出到控制台 helper broker modules/njt_helper_broker_module.so conf/mqtt.conf; helper ctrl /modules/njt_helper_ctrl_module.so conf/ctrl_demo.conf; events { worker_connections 1024; } cluster_name helper; node_name node1; http { dyn_kv_conf conf/iot.conf; access_log logs/access.log combined; ## 此处为必要配置，日志格式可以修改 # 分布式telemetry模块配置文件 opentelemetry_config conf/otel.toml; # telemetry-webserver模块配置文件 include conf/opentelemetry_module.conf; upstream demo { zone demo 128k; server 192.168.40.141:8080; } upstream demos { zone demos 128k; server 192.168.40.141:443; } server { listen 1081; location / { # telemetry-webserver 配置 NjetModuleEnabled OFF; # 分布式telemetry 配置 opentelemetry on; opentelemetry_operation_name my_example_backend; opentelemetry_propagate; root html; index index.html; location /demo { proxy_pass http://demo; } } location = /test/demo { # telemetry-webserver 配置 NjetModuleEnabled ON; # 分布式telemetry 配置 opentelemetry on; opentelemetry_operation_name my_example_backend; opentelemetry_propagate; proxy_pass http://demo; } } server { listen 1080; location / { root html; index index.html; } location = /test/demo { limit_conn addr 100; proxy_pass http://demo; } location /demo { add_header test api; proxy_pass http://demo; } location /demos { limit_conn addr 100; proxy_ssl_certificate nginx.pem; proxy_ssl_certificate_key nginx-key.pem; proxy_pass https://demos; } } } 4 API 4.1 API 列表 查询telemetry接口：</description>
    </item>
  </channel>
</rss>