一、OpenObserve 介绍OpenObserve是一个基于Rust开发的开源云原生可观察性平台专为处理海量数据如日志、指标和追踪数据而设计具有高性能、低成本和易用性等特点。核心功能和特点低成本存储 相比ElasticsearchOpenObserve的日志存储成本可降低约140倍显著降低运营成本。高性能 专为大规模数据处理而设计可轻松处理PB级数据量。易用性 快速部署简单配置几分钟内即可开始使用。多租户支持 支持多租户架构。数据兼容性 兼容Elasticsearch的摄取和查询API可无缝迁移。高级功能 支持日志搜索、指标监控、分布式追踪、告警、仪表盘等功能。多种存储选项 支持S3、MinIO、GCS、Azure Blob等多种存储方式。丰富的查询语言 支持SQL和PromQL查询语言方便数据分析。用户定义函数 支持用户自定义摄取和查询函数增强数据处理能力。Github 地址https://github.com/openobserve/openobserve官方文档地址https://openobserve.ai/docs/二、部署 OpenObserve官方提供了多种部署方式这里使用Docker快速部署version:3.5services:openobserve:image:public.ecr.aws/zinclabs/openobserve:latestrestart:unless-stoppedenvironment:ZO_ROOT_USER_EMAIL:rootexample.comZO_ROOT_USER_PASSWORD:test123ports:-5080:5080volumes:-./data:/dataprivileged:true启动服务docker-composeup-d浏览器访问http://ip:5080进入可视化主页登录邮箱和密码就是上面yml文件配置的信息可以在采集下面找到接入时的认证Token三、SpringBoot 无侵入接入 OpenObserve首先新建SpringBoot项目构建两个测试接口用于打印日志Slf4jRestControllerRequestMapping(/test)publicclassTestController{GetMapping(/t1)publicStringtest1(){log.info(t1 触发666);log.error(t1 触发888);returnsuccess;}GetMapping(/t2)publicStringtest2(){log.info(t2 触发666);log.warn(t2 触发888);returnsuccess;}}将SpringBoot项目打包为jar包mvn clean package下载OpenObservejavaagent包https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v2.6.0/opentelemetry-javaagent.jar启动jar包指向该代理java-javaagent:./opentelemetry-javaagent.jar-Dotel.exporter.otlp.endpointhttp://127.0.0.1:5080/api/default-Dotel.exporter.otlp.protocolhttp/protobuf-Dotel.exporter.otlp.compressiongzip-Dotel.exporter.otlp.headersAuthorizationBasic cm9vdEBleGFtcGxlLmNvbTpzRmNiaW1sUDZ6a0xDVU83,stream-nameoo-test-jaropenobserve-demo-0.0.1-SNAPSHOT.jar其中Dotel.exporter.otlp.endpoint需要改为你的OpenObserve服务的地址同时headers需要添加上述提到的认证Tokenstream-name表示服务的名称。下面多次访问几次测试接口打开OpenObserve可视化主页可以看到有部分数据流进来了数据流下可以看到上面启动时指定的服务名称已经加进来了点击右边操作放大镜即可看到接进来的日志了可以通过SQL更灵活的查询数据例如查询所有ERROR级别的日志SELECT*FROMoo_testwhereseverityERRORORDERBY_timestampDESC在追踪下也可以看到接口调用的记录
阅读完成 · 觉得有帮助?