CATCAT
  • 介绍
  • 快速上手
  • 客户端配置
  • 安装 - 容器
  • 安装 - 虚拟机
  • 核心功能
  • 日常操作
  • 扩展
  • 部署模式
  • 常见问题
  • 支持
  • API 参考
  • CAT 配置
  • 安装 JDK
  • 安装 MySQL
  • 安装 Docker
  • 性能
  • 安全
  • 版本 1
  • 版本 2
  • 对比
  • English
  • 简体中文
  • 介绍
  • 快速上手
  • 客户端配置
  • 安装 - 容器
  • 安装 - 虚拟机
  • 核心功能
  • 日常操作
  • 扩展
  • 部署模式
  • 常见问题
  • 支持
  • API 参考
  • CAT 配置
  • 安装 JDK
  • 安装 MySQL
  • 安装 Docker
  • 性能
  • 安全
  • 版本 1
  • 版本 2
  • 对比
  • English
  • 简体中文
  • 指南

    • 介绍
    • 快速上手
    • 客户端配置
    • 安装 - 容器
    • 安装 - 虚拟机
    • 核心功能
    • 日常操作
    • 扩展
    • 部署模式
    • 常见问题
    • 支持

客户端配置

CAT Agent

CAT Agent 通过 java agent 技术与被监控应用程序一起运行,无需额外的安装步骤。它用于收集应用程序的指标(metrics)、链路(tracing)和日志(logging)等数据,直接通过 TCP 协议将监控数据异步发送到 CAT 服务端进行处理。

  • 环境要求:JDK 8 及以上

  • 配置项目:

配置项描述示例
cat.token租户标识'unidal': CAT 所在的租户代号
cat.namespace当前服务所对应的 domain'cat': CAT 所在的项目名称
cat.endpointsCAT 消费机地址'10.0.0.1':CAT 服务端地址,建议使用内网域名|
  • 配置示例:
# 请使用实际的路径替换 /path/to/cat-agent.jar,将 <cat.token>, <cat.namespace> 以及 <cat.endpoints> 替换为实际的值

export JAVA_TOOL_OPTIONS="-javaagent:/path/to/cat-agent.jar -Dcat.token=<cat.token> -Dcat.namespace=<cat.namespace> -Dcat.endpoints=<cat.endpoints>

java -jar your-application.jar

进一步的配置详见 CAT 配置。

CAT Client

CAT Client 用于在应用程序中埋点,记录应用程序的指标(metrics)、链路(tracing)和日志(logging)等数据。

  • 环境要求:JDK 8 及以上

  • 修改 Maven pom.xml 文件:

    • 添加依赖仓库
    
    <project>
      <!-- ... -->
      <repositories>
        <repository>
          <id>center</id>
          <url>https://repo.maven.apache.org/maven2/</url>
        </repository>
        <repository>
          <id>cat-next</id>
          <url>https://repo.cat-next.com/repository/artifact/</url>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>daily</updatePolicy>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
      </repositories>
    </project>    
    
    • 添加依赖项目:使用 https://repo.cat-next.com/repository 中的实际版本号替换 ${cat.version}
    <dependency>
        <groupId>org.unidal.cat2</groupId>
        <artifactId>cat-client</artifactId>
        <version>${cat.version}</version>
    </dependency>
    
  • 自定义埋点示例:

package org.unidal.cat.test;

import org.junit.jupiter.api.Test;
import org.unidal.cat.Cat;
import org.unidal.cat.Counter;
import org.unidal.cat.Transaction;

import java.util.Collections;
import java.util.concurrent.TimeUnit;

class CatTest {
  private void doSomething() throws InterruptedException {
    TimeUnit.MILLISECONDS.sleep(5);
  }

  @Test
  void logError() {
    Cat.logError(new Exception("MyException"));
  }

  @Test
  void logEvent() {
    Cat.logEvent("MyType", "MyName");
  }

  @Test
  void newCounter() {
    Counter counter = Cat.newCounter("MyCounter", builder -> builder.desc("My Counter").unit("1").attr("tag1", "value1"));

    counter.add(1);
    counter.add(5, Collections.singletonMap("tag2", "value2"));
    counter.add(8, Collections.singletonMap("tag2", "value3"));
  }

  @Test
  void newTransaction() {
    Transaction t = Cat.newTransaction("MyType", "MyName");

    try {
      t.addAttribute("tag1", "value1");
      t.addAttribute("tag2", "value2");

      doSomething();

      t.addData("key1", "value1");
      t.addData("THIS IS DATA");
    } catch (Exception e) {
      Cat.logError(e);
    } finally {
      t.complete();
    }
  }
}
  • 日志埋点:使用默认的 logback 或者 log4j2 日志框架,无需额外配置
在 GitHub 上编辑此页
上次更新:
贡献者: Frankie Wu
Prev
快速上手
Next
安装 - 容器