You need to enable JavaScript to run this app.
导航

将生产和测试数据隔离

最近更新时间2023.08.16 17:57:10

首次发布时间2023.08.16 17:57:10

如果您使用一个主账号管控生产数据和测试数据,可以参考以下操作,将生产和测试数据隔离,便于区分生产数据和测试数据的监控指标变化。

注意事项

  • 只有通过OpenTelemetry接入的服务,支持将生产和测试数据隔离。
  • 只有采用自动接入的数据采集方式的服务,支持将生产和测试数据隔离。

通过OpenTelemetry接入服务

OpenTelemetry是CNCF的一个可观测性项目,旨在提供可观测性领域的标准化方案,解决观测数据的数据模型、采集、处理、导出等的标准化问题,提供与三方vendor无关的服务。
如果您的应用已经接入了OpenTelemetry的SDK,APMPlus服务端可以接收OpenTelemetry上报的数据。接入APMPlus后,您将获得RED指标生成能力、Trace多维检索、单链路检索、拓扑生成等多项能力。

使用限制

  • 目前APMPlus仅支持OpenTelemetry中Trace部分数据的处理和Metrics的适配,Logs暂不支持。
  • 其中,APMPlus采用Prometheus作为OpenTelemetry Metrics的存储,支持promql对metrics进行查询,具体应用请参见自定义看板报警管理
  • OpenTelemetry Metrics转换为Prometheus Metrics时,存在一定限制:
    • 开源相同,不支持ExponentialHistogram
    • 不支持聚合方式为delta的数据。请不要修改SDK侧的默认聚合配置,保证SDK侧数据的聚合方式为cumulative。

通过namesapce区分env

如果您的业务场景通过namesapce就可以区分环境,请参见以下步骤接入服务。

  1. 安装APMPlus OpenTelemetry Collector。

    kubectl apply -f "http://apmplus-dl-{region}.ivolces.com/server_warehouse/generate_assets/download/apmplus-opentelemetry-k8s/apmplus-opentelemetry-operator-v0.0.17.yaml?appkey={appkey}&network={network}&promReplicas=1&namespaceAsEnv=true"
    

    您可以通过修改url中promReplicas的值来扩展prom副本数。

    说明

    完整安装命令请到接入中心查看,详情请参见如何使用接入中心?

  2. 在服务的k8s deployment配置中增加指定annotation。

    instrumentation.apmplus.volcengine.com/inject-java: 'true'
    

    示例代码:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: simple-java
      labels:
        app: simple-java
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: simple-java
      template:
        metadata:
          labels:
            app: simple-java
          annotations:
            instrumentation.apmplus.volcengine.com/inject-java: 'true'
        spec:
          containers:
          - name: simple-java
            image: java_demo_simple
            imagePullPolicy: Always
            env:
            - name: CONTAINER_RUNTIME
              value: "k8s"
    
  3. 重新启动应用。

在pod手动指定env

如果您的业务场景无法通过namespace区分环境,请参见以下步骤在annotation手动逐个添加env。

  1. 安装APMPlus OpenTelemetry Collector。

    kubectl apply -f "http://apmplus-dl-{region}.ivolces.com/server_warehouse/generate_assets/download/apmplus-opentelemetry-k8s/apmplus-opentelemetry-operator-v0.0.17.yaml?appkey={appkey}&network={network}&promReplicas=1"
    

    您可以通过修改url中promReplicas的值来扩展prom副本数。

    说明

    完整安装命令请到接入中心查看,详情请参见如何使用接入中心?

  2. 在服务的k8s deployment配置中增加指定annotation。

    instrumentation.apmplus.volcengine.com/inject-java: 'true'
    

    示例代码:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: simple-java
      labels:
        app: simple-java
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: simple-java
      template:
        metadata:
          labels:
            app: simple-java
          annotations:
            instrumentation.apmplus.volcengine.com/inject-java: 'true'
            apmplus.volcengine.com/env:'test'
        spec:
          containers:
          - name: simple-java
            image: java_demo_simple
            imagePullPolicy: Always
            env:
            - name: CONTAINER_RUNTIME
              value: "k8s"
    

    注意

    通过annotation指定env需要逐个手动添加。

  3. 重新启动应用。

验证数据

查看服务列表

  1. 登录应用性能监控全链路版控制台
  2. 在左侧导航栏,单击服务端监控
  3. 选择开服region。
  4. 单击服务端监控右侧的点击进入服务端列表
  5. 在服务列表中,选择env,查看多选env下是否是已接入的服务。

查看服务拓扑

  1. 登录应用性能监控全链路版控制台
  2. 在左侧导航栏,单击服务端监控
  3. 选择开服region。
  4. 单击服务端监控右侧的点击进入服务端列表
  5. 在左上角选择全部功能 > 服务拓扑
  6. 在服务拓扑页面,选择env,查看所选env下的拓扑关系是否正确。