• DataKit 作为本地获取数据的 API 服务器


    当用户同时需要采集大量不同技术栈的指标、日志或者链路数据时或者希望在其他平台或应用中使用 DataKit 所采集并上报的数据时,Datakit 为用户提供了命令行交互模式的快速数据查询的“DQL查询”又提供了以 API 的形式去使用 DataKit 所收集到的数据的 “DataKit API”。

    本指南可以为您介绍 DataKit 所提供的 “DQL查询”和 "DataKit API" 的使用。

    前置条件

    您需要先创建一个观测云账号,并在您的主机上安装 DataKit

    交互模型数据查询 “DQL查询”

    DataKit 支持以交互式方式执行 DQL 查询,在交互模式下,DataKit 自带语句补全功能:

    1. datakit --dql # 或者 datakit -Q
    2. dql > cpu limit 1
    3. -----------------[1.cpu ]-----------------
    4. cpu 'cpu-total'
    5. host'tan-air.local'
    6. time2022-01-13 16:06:03 +0800 CST
    7. usage_irq 0
    8. usage_idle 56.928839
    9. usage_nice 0
    10. usage_user 19.825218
    11. usage_guest 0
    12. usage_steal 0
    13. usage_total 43.071161
    14. usage_iowait 0
    15. usage_system 23.245943
    16. usage_softirq 0
    17. usage_guest_nice 0
    18. ---------
    19. 1 rows, cost 13.55119ms

    单次执行 DQL 查询

    DataKit 支持运行单条 DQL 语句的查询功能:

    1. # 单次执行一条查询语句
    2. datakit --run-dql 'cpu limit 1'
    3. # 将执行结果写入 CSV 文件
    4. datakit --run-dql 'O::HOST:(os, message)' --csv="path/to/your.csv"
    5. # 强制覆盖已有 CSV 文件
    6. datakit --run-dql 'O::HOST:(os, message)' --csv /path/to/xxx.csv --force
    7. # 将结果写入 CSV 的同时,在终端也显示查询结果
    8. datakit --run-dql 'O::HOST:(os, message)' --csv="path/to/your.csv" --vvv

    导出的 CSV 文件样式示例:

    1. name,active,available,available_percent,free,host,time
    2. mem,2016870400,2079637504,24.210166931152344,80498688,achen.local,1635242524385
    3. mem,2007961600,2032476160,23.661136627197266,30900224,achen.local,1635242534385
    4. mem,2014437376,2077097984,24.18060302734375,73502720,achen.local,1635242544382

    DQL查询结果JSON化

    DQL的查询结果可以直接以 JSON 形式输出结果,但 JSON 模式下,不会输出一些统计信息,如返回行数、时间消耗等(以保证 JSON 可直接解析)

    1. datakit --run-dql 'O::HOST:(os, message)' --json
    2. datakit -Q --json
    3. # 如果字段值是 JSON 字符串,则自动做 JSON 美化(注意:JSON 模式下(即 --json),`--auto-json` 选项无效)
    4. datakit --run-dql 'O::HOST:(os, message)' --auto-json
    5. -----------------[ r1.HOST.s1 ]-----------------
    6. message ----- json ----- # JSON 开始处有明显标志,此处 message 为字段名
    7. {
    8. "host":{
    9. "meta":{
    10. "host_name":"www",
    11. .... # 此处省略长文本
    12. "config":{
    13. "ip":"10.100.64.120",
    14. "enable_dca": false,
    15. "http_listen":"localhost:9529",
    16. "api_token":"tkn_f2b9920f05d84d6bb5b14d9d39db1dd3"
    17. }
    18. }
    19. ----- end of json ----- # JSON 结束处有明显标志
    20. os 'darwin'
    21. time2022-01-13 16:56:22 +0800 CST
    22. ---------
    23. 8 rows, 1 series, cost 4ms

    查询特定工作空间的数据

    DQL查询可以通过指定不同的 Token 来查询其它工作空间的数据:

    1. datakit --run-dql 'O::HOST:(os, message)' --token <your-token>
    2. datakit -Q --token <your-token>

    DataKit API

    DataKit 以 JSON 数据类型为返回结果的,Http API 的数据提供能力,目前支持的 API 包括

    写入数据

    http://{DatakitIP}/v1/write/:category

    category支持:日志数据、指标数据、对象数据、自定义对象数据、RUM数据等

    检测 Datakit 运行

    http://{DatakitIP}/v1/ping

    查看采集器错误

    http://{DatakitIP}/v1/lasterror

    查看工作空间信息

    http://{DatakitIP}/v1/workspace

    数据查询

    http://{DatakitIP}/v1/query/raw

    创建或更新对象的 labels

    http://{DatakitIP}/v1/object/labels | POST

    删除对象的 labels

    http://{DatakitIP}/v1/object/labels | DELETE


    观测云是一款面向开发、运维、测试及业务团队的实时数据监测平台,能够统一满足云、云原生、应用及业务上的监测需求,快速实现系统可观测。

    现在前往观测云官网,注册一个账号,可以免费体验观测云的完整功能~

  • 相关阅读:
    百数报表——帮助企业数据化重要工具
    jQuery基础----绑定和解绑事件的方法
    IDEA通过原型(骨架)创建MavenJavaWeb项目
    c#数组排列系列2
    面对“双十一”这样的大促,品牌方还能多做些什么?
    分布式账本技术(Distributed Ledger Technology)和区块链(Blockchain)的简要介绍
    5-2 Pytorch中的模型层layers
    《FFmpeg Basics》中文版-02-显示帮助和功能
    Mybatis--动态SQL
    怎么获取别人店铺的商品呢?
  • 原文地址:https://blog.csdn.net/DataFlux/article/details/125526827