亚马逊AWS官方博客

手把手教你玩转 Timestream For influxDB 实现时序数据存储和分析

为满足不断增长的时序数据需求,Amazon 推出了 Timestream for InfluxDB 服务,融合了 Amazon 云原生时序数据库的优势与 InfluxDB 开源生态,为客户提供全托管的高性能和高可用时序数据库解决方案。

Amazon Timestream for InfluxDB 是一个托管的时间序列数据库引擎, 专门设计用于处理时间序列数据。时序数据是按时间顺序排列的数据,通常用于表示 IoT 数据、应用程序指标、金融股票/期货行情、量化交易领域、日志和事件等。Amazon Timestream for InfluxDB 具有高效存储和查询的能力,采用自适应压缩算法和特定的存储引擎,可以高效地存储大量的时序数据,并通过类似 SQL 的查询语言(InfluxQL)和 FLUX 提供丰富的查询功能。它支持高并发写入,适用于处理实时数据流,并可定义数据保留策略自动删除旧数据以控制数据库大小。

Timestream for InfluxDB 的存储架构是基于 Time-Structured Merge Tree(TSM)的设计,数据分片、TSM 存储引擎、索引结构和压缩算法的结合,使得 InfluxDB 能够在保证数据可靠性的同时,提供快速的数据写入和查询性能。

Timestream for InfluxDB 多 AZ 部署支持有一个 Standby。多 AZ 部署支持数据的复制和故障转移,以提供高可用性和容错性,当一个节点发生故障时,复制的数据可以自动切换到其他节点,以保持数据的可用性和连续性,实现企业级数据库高可用性。

Timestream for InfluxDB 的主要优势包括:

  • 高效的时序数据处理,采用优化的存储和查询引擎,支持实时及批量写入
  • 灵活的数据模型,支持标签和字段,方便数据管理和过滤
  • 强大的 InfluxQL(SQL)和 Flux 查询语言,支持时序数据分析和技术指标计算
  • 支持数据生命周期管理,高效清理过期数据
  • 支持定义 Flux Task,实时数据进行定期计算和统计
  • 窗口查询功能,沿时间轴进行灵活的数据查询和聚合
  • 支持数据压缩,节省存储成本
  • 完全兼容 InfluxDB 最新版本,当前版本是 2.7,借助开源社区的技术支持

本 blog 将手把手教你玩转 Timestream for influxDB,主要会包含以下几个部分:Timestream for InfluxDB 创建、连接、数据插入,如何采用 influxDB UI 连接和管理 Timestream for influxDB;以及我们将以 devops 运维数据为示例场景,介绍如何采用 Timesteram for influxDB 来高效插入、存储时序数据;以及如何采用和集成 grafana,实现时序数据丰富和高效的查询、分析和展现。

部署架构图

其中架构主要分成四大部分:

  • 实时时序数据采集:通过安装部署在 EC2 堡垒机的 Python 模拟实现 Devops 运维数据,将数据实时采集数据到 Timestream for influxDB。
  • 时序数据存储:通过 Amazon Timestream for influxDB 时序数据库实现时序数据高效存储。
  • 实时时序数据分析:通过安装部署在 EC2 堡垒机的 Grafana (内置 influxDB 插件)实时访问 Timestream for influxDB 数据,通过 Grafana 丰富的分析图表形式,结合 Amazon Timestream for InfluxDB 内置的时间序列分析函数,可以实现近乎实时地识别 devops 运维实时数据的趋势和模式。
  • 通过 EC2 堡垒机 SSH tunnel, 采用 influxDB UI 访问同一 VPC 内部署的 Timestream for influxDB,实现图像化管理运维工作,例如创建 bucket(database)、创建 Flux Task 和进行实时数据探索(data explorer)。

安装 Timestream for InfluxDB

创建数据库

访问 Timestream for influxDB console(区域选择 us-east-1):https://us-east-1.console.thinkwithwp.com/timestream/home?region=us-east-1#influxdb-instances/create-influxdb-instance

输入创建 influxDB 数据库参数:

DB instance name: managed-influxdb-1
Initial username: masteruser
Initial organization name: workshop
Initial bucket name: sampledb
Password: Password1

Instance configuration(保持缺省设置)
DB instance class:db.influx.large
Storage configuration(保持缺省设置)
Storage type:influx IO included(3k)
Allocated storage:400
Availability settings:选择 Single-AZ(生产环境建议选择 Multi-AZ)

Connectivity configuration(保持缺省配置)
Public access:选择 Not publicly accessible

其它配置:Parameter/Log/Tags 均保持缺省配置

点击创建数据库

创建 EC2 堡垒机

访问 EC2 console 区域选择 us-east-1:https://us-east-1.console.thinkwithwp.com/ec2/home?region=us-east-1#LaunchInstances:

操作系统:选择 Amazon Linux
版本:选择 Amazon Linux 2
Instance type:选择 C5.large
密钥对:创建访问 EC2 堡垒机的密钥对,并将密钥保存到本地
其它选项:均选择缺省配置

等 EC2 堡垒机创建成功,增加一个安全组 default(前面创建的 Managed influxDB 所对应的 default 安全组)

在 EC2 堡垒机上安装相应软件

设置时区

TZ='Asia/Shanghai'; export TZ

Install python3

sudo yum install -y python3

Install python3 pip

sudo yum install -y python3-pip

pip3 install boto3

sudo pip3 install boto3

pip3 install numpy

sudo pip3 install numpy

install git

sudo yum install -y git

安装 influxDB 对应的 python 模块

pip3 install influxdb
pip3 install urllib3==1.26.15

通过 Influx 客户端连接到 Managed InfluxDB

在 EC2(amazon Linux)上安装 influxDB 客户端

首先确认 EC2 InfluxDB 数据库在同一个安全组:default(安全组安全组内支持任意 TCP/IP 访问

下载 influxDB client(version 2.7)

wget https://repos.influxdata.com/centos/7/x86_64/stable/influxdb2-client-2.7.3.x86\_64.rpm

sudo yum localinstall influxdb2-client-2.7.3.x86_64.rpm

连接到数据库

创建 influx config(config name 为 workshop)

influx config create --config-name workshop  \
    --host-url https://managed-influxdb-1-5bc2krpa3h3ehv.us-east-1.timestream-influxdb.amazonaws.com:8086 \
   --org workshop  \
   --username-password masteruser \
   --active

创建可以进行任何访问的 token

influx auth create --org workshop --all-access

生成的 token 如上图,保持 token 为后续使用

创建新的 influx config workshop-new,并使其成为 active config

   influx config create --config-name workshop-new  \
    --host-url https://managed-influxdb-1-5bc2krpa3h3ehv.us-east-1.timestream-influxdb.amazonaws.com:8086 \
   --org workshop  \
   --token  "gFN88WQ48L8ZzSRdsfXlGxDiupyuQ4kChVFt-PEiuWZm55K9LyBq7e_q******CCovp4lB88gouQKjig==" \
   --active

测试新创建 influx config workshop-new 是否正确:
执行 create bucket 命令,创建 bucket:test(bucket 相当于 database 概念)

influx bucket create --name test

装载本地文件到数据库

装载本地文件到 sampledb

Measure: mem
Tag: host
Field: used_percent

vi sample_host.csv
#datatype measurement,tag,double,dateTime:RFC3339
m,host,used_percent,time
mem,host1,64.23,2020-01-01T00:00:00Z
mem,host2,72.01,2020-01-01T00:00:00Z
mem,host1,62.61,2020-01-01T00:00:10Z
mem,host2,72.98,2020-01-01T00:00:10Z
mem,host1,63.40,2020-01-01T00:00:20Z
mem,host2,73.77,2020-01-01T00:00:20Z

将本地文件导入到 Managed InfluxDB bucket:sampledb

influx write --bucket sampledb --file "./sample_host.csv"

查询刚插入数据(使用 FLUX 语言 – Flux 是 InfluxData 公司专门为 InfluxDB 2.0 及更高版本设计的新型数据脚本语言和查询语言)

influx query 'from(bucket:"sampledb") |> range(start:-10y) |> filter(fn: (r) => r._measurement == "mem")'

将 S3 上数据文件导入到 Managed InfluxDB bucket:test

influx write --bucket test --url https://influx-testdata.s3.amazonaws.com/air-sensor-data-annotated.csv

通过 HTTP API 插入数据

通过 HTTP API 写入单条数据 (注意鉴权,要在 HTTP head 中带 token)

curl -i -XPOST 'https://managed-influxdb-1-5bc2krpa3h3ehv.us-east-1.timestream-influxdb.amazonaws.com:8086/write?db=test' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000' \
-H "Authorization: Token gFN88WQ48L8ZzSRdsfXlGxDiupyuQ4kChVFt-PEiuWZm55K9LyBq7e_qDJ******CCovp4lB88gouQKjig=="

输出结果

HTTP/2 204 
vary: Accept-Encoding
x-influxdb-build: OSS
x-influxdb-version: dev
date: Sun, 07 Apr 2024 06:21:44 GMT

表示成功数据插入

通过 HTTP API 查询数据(支持类 InfluxQL 语法)

curl -H "Authorization: Token gFN88WQ48L8ZzSRdsfXlGxDiupyuQ4kChVFt-PEiuWZm55K9LyBq7e_qDJLZkQdE******ovp4lB88gouQKjig==" \
-G 'https://managed-influxdb-1-5bc2krpa3h3ehv.us-east-1.timestream-influxdb.amazonaws.com:8086/query?db=test&pretty=true' --data-urlencode "q=SELECT \"value\" FROM \"cpu_load_short\" WHERE \"region\"='us-west' and \"host\"='server01'"

查询结果

{"results":[{"statement_id":0,"series":[{"name":"cpu_load_short","columns":["time","value"],"values":[["2015-06-11T20:46:02Z",0.64]]}]}]}

通过 influx V1 Shell 访问数据库

执行下面命令访问 influx v1 shell

Influx v1 shell

查看数据库

show databases

切换到要查看数据库

use sampledb

查看指标

show measurements

查看指标的 tag 定义

show tag keys from mem

查看指标的 field 定义

show field keys from mem

查询指标中数据

select * from mem

插入新数据

INSERT cpu,host=server01,region=us-west value=42.5

下载 devops 时序数据生成应用

下载 devops 时序数据生成应用, 为后续数据查询等操作使用

git clone https://github.com/bingbingliu18/managed-influxDB.git
cd managed-influxDB

运行 devops 时序数据生成应用

  python3 managed_influxDB_continuous_data_ingestor_application.py --url "https://managed-influxdb-1-5bc2krpa3h3ehv.us-east-1.timestream-influxdb.amazonaws.com:8086" \
   --org workshop \
   --token  "gFN88WQ48L8ZzSRdsfXlGxDiupyuQ4kChVFt-PEiuWZm55K9LyBq7e_qDJLZ******Covp4lB88gouQKjig==" \
   --bucket sampledb

–url 是 Managed influxDB URL
–org 是之前创建的 influxDB organization: workshop
–token 是之前创建访问地 influxDB token
–bucket 是之前创建的 influxDB bucket: sampledb

生成的 devops 时序数据描述:

  • Devops 时序数据 tag(dimensension)

availability_zone/cell/instance_name/jdk_version/microservice_name/os_version/process_name/region/silo

  • Devops 时序数据 Field(measure)

cpu_user/cpu_system/cpu_idle/cpu_iowait/cpu_steal/cpu_nice/cpu_si/cpu_hi
memory_free/memory_used/memory_cached
disk_io_reads/disk_io_writes/latency_per_read/latency_per_write
network_bytes_in/network_bytes_out
disk_used/disk_free/file_descriptors_in_use
task_completed/task_end_state/gc_reclaimed/gc_pause

通过 Influx UI 访问 Managed InfluxDB

通过 EC2 SSH tunnel 访问 Influx UI

(EC2 堡垒机和 Managed influxDB 在同一个 VPC 拥有同一个 default security group)

在 mac client 端 Terminal 中执行 (通过 EC2 SSH tunnel 访问 influx UI)
执行以下命令

ssh -i "us-east-1.pem" -L 8086:managed-influxdb-1-5bc2krpa3h3ehv.us-east-1.timestream-influxdb.amazonaws.com:8086 ec2-user@ec2-54-237-166-116.compute-1.amazonaws.com -N

其中:

us-east-1.pem – 是访问 EC2 堡垒机的密钥
managed-influxdb-1-5bc2krpa3h3ehv.us-east-1.timestream-influxdb.amazonaws.com:8086 – 是 Managed influxDB 访问 url
ec2-54-237-166-116.compute-1.amazonaws.com –  是 EC2 堡垒机 pubic 访问地址

保持这个 terminal 一直运行

通过 Influx UI 访问 managed InfluxDB

在 mac client 浏览器中输入:https://localhost:8086

输入 Username:masteruser;Password:Password1

创建新的 bucket 并定义 Retention Policy

Bucket Name: aggregate
Bucket Retention Policy: 30 days
Retention Policy: 将 bucket 的 rentention policy 设置为一个月,意味着 InfluxDB 会自动删除超过一个月的”老”数据

Bucket: aggregate 创建成功,并且 retention Policy 为 30 days

创建 Flux Task

Flux Task 是 InfluxDB 2.0 中的一个功能,它允许用户使用 Flux 脚本定义并调度数据处理任务。

创建一下个新的 Flux Task(点击左边导航 Flux TASK 图标),点击 create task 按钮,输入名字:mean_cpu_hi_5m,每 5 分钟执行一次。

把下面 flux task 定义的 flux script 拷贝到右边文本框里,下面定义的 Flux task 会每 5 分钟把 bucket:sampledb Measurement:devops_metrics 的 cpu_hi 指标做汇总(求近 5 分钟的平均值), 然后将汇总信息写到 bucket:aggregate Measurement:mean_cpu_hi(类似数据上卷动作)

from(bucket: "sampledb")
    |> range(start: -5m)
    |> filter(fn: (r) => r._measurement == "devops_metrics")
    |> filter(fn: (r) => r._field == "cpu_hi")
    |> aggregateWindow(every: 5m, fn: mean)
    |> set(key:"_measurement", value:"mean_cpu_hi")
    |> to(bucket: "aggregate", fieldFn: (r) => ({"mean": r._value}))

点击 save button

新的 task: mean_cpu_hi_5m 创建成功

点击 task mean_cpu_hi_5m,执行 task(run task)

可以看到 task: mean_cpu_hi_5m 被成功执行

登陆到 EC2 堡垒机,运行 devops 时序数据生成应用

  python3 managed_influxDB_continuous_data_ingestor_application.py --url "https://managed-influxdb-1-5bc2krpa3h3ehv.us-east-1.timestream-influxdb.amazonaws.com:8086" \
   --org workshop \
   --token  "gFN88WQ48L8ZzSRdsfXlGxDiupyuQ4kChVFt-PEiuWZm55K9LyBq7e_qD******zTyzCCovp4lB88gouQKjig==" \
   --bucket sampledb

通过 data explore 访问刚由 Flux Task 生成的汇总数据

点击 data explore 图标,进入 data explore

Bucket:选择 aggregate
Measurement:选择 mean_cpu_hi
Field:选择 mean
选择不同的维度信息值:Region/AZ/Cell/silo/instance_type/instance_name/microservice_name/os_version
图形选择:Graph
时间选择:近 15 分钟

点击 summit 生成分析

通过 Grafana 访问 Managed InfluxDB

安装 Granfana

登陆到 EC2 堡垒机

sudo vi /etc/yum.repos.d/grafana.repo

For OSS releases(拷贝以下内容到 grafana.repo)

[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

sudo yum install -y grafana

Grafana 的启动

启动 Grafana 服务,并确认服务运转正常

sudo service grafana-server start
sudo service grafana-server status

将 Grafana 服务器配置为开机自启动,以便于系统重启时自动运行

sudo /sbin/chkconfig —add grafana-server

Grafana 的访问

第一次登陆到 Grafana(用户名:admin;口令:admin,第一次登陆需要改密码):

  • 打开浏览器,访问以下地址:http: //EC2 堡垒机器public ip]:3000(注意登陆 VPN 不能访问此 URL,要退出 VPN)
  • 除非您专门配置了其他端口,否则 Grafana 默认监听的 HTTP 端口为 3000

创建访问 InfluxDB 数据源 – 通过 FLUX

在 Grafana 选择 connection / 选择 Add new connection / Connection 类型选择influxDB / 选择 Add data source

查询语言为 Flux data source

输入 data source 名字:influxdb-1
Query language:Flux (选择 Flux)
输入访问 Managed influxDB URL:https: //managed-influxdb-1-5bc2krpa3h3ehv.us-east-1.timestream-influxdb.amazonaws.com:8086

认证方式:选择基本认证
用户名:masteruser
口令:Password1

InfluxDB details

organization:workshop
token:gFN88WQ48L8ZzSRdsfXlGxDiupyuQ4kChVFt-PEiuWZm55K9LyBq7e_qDJ******CCovp4lB88gouQKjig==
Default Bucket:sampledb

选择 Save and test

创建访问 influxDB 数据源 – 通过 InfluxQL

在 Granfana 选择 connection / 选择 Add new connection / Connection 类型选择 influxDB /选择 Add data source

查询语言为 Flux data source

输入 data source 名字:influxdb-2
Query language:InfluxQL(选择 InfluxQL)
输入访问 Managed influxDB URL:https: //managed-influxdb-1-5bc2krpa3h3ehv.us-east-1.timestream-influxdb.amazonaws.com:8086
Auth:选择 with Credentials

Custom HTTP Headers

Header:输入 Authorization
Value 输入(要写 Token 最前面):Token gFN88WQ48L8ZzSRdsfXlGxDiupyuQ4kChVFt-

Database:输入 sampledb
User:输入 masteruser
Password:输入 Password1

登陆到 EC2 堡垒机,运行 devops 时序数据生成应用

  python3 managed_influxDB_continuous_data_ingestor_application.py --url "https://managed-influxdb-1-5bc2krpa3h3ehv.us-east-1.timestream-influxdb.amazonaws.com:8086" \
   --org workshop \
   --token  "gFN88WQ48L8ZzSRdsfXlGxDiupyuQ4kChVFt-PEiuWZm55K9LyBq7e_qDJLZkQ******vp4lB88gouQKjig==" \
   --bucket sampledb

创建 Dashboard – 通过 Flux 访问 Managed InfluxDB

New dashboard / Add Visualization / 选择 Flux 数据源(influxdb-1)

在 query editor 里面输入

from(bucket:"sampledb") |> range(start:-10y) |> filter(fn: (r) => r._measurement == "mem")

Panel Title:Mem query
Graph Type:Gauge
点击 Apply button
点击 save 按钮 Save dashboard,dashboard name:influx-flux-dashboard

创建 Dashboard – 通过 InfluxQL 访问 Managed InfluxDB

查询 1:降采样分析,分析可以从 devops_metrics 测量(Measure)中查询指定微服务(zeus)在过去 6 小时内每 15 分钟的 CPU 利用率指标平均值

New dashboard / Add Visualization / 选择 InfluxQL 数据源(influxdb-2)

在 query editor 里面输入:

SELECT mean(cpu_user) AS "mean_cpu_user",mean(cpu_system) AS "mean_cpu_system",mean(cpu_idle) AS "mean_cpu_idle",mean(cpu_iowait) AS "mean_cpu_iowait",mean(cpu_steal) AS "mean_cpu_steal",mean(cpu_nice) AS "mean_cpu_nice",mean(cpu_si) AS "mean_cpu_si",mean(cpu_hi) AS "mean_cpu_hi"
  FROM devops_metrics
where microservice_name = 'zeus' and time > now() - 6h
  GROUP BY time(15m) 

Panel Title:微服务 Zeus 的平均 CPU
Graph Type:Stat
点击 Apply button
点击 save 按钮 Save dashboard,dashboard name:influxQL-dashboard

创建 Dashboard 查询时,请设定时区为本地浏览器时区

修改 dashboard 为自动刷新 – 每 5 秒刷新一次

查询 2:降采样分析,分析可以从 devops_metrics 测量(Measure)中查询在新加坡区域特定 cell 指定微服务(zeus)在过去 6 小时内每 1 小时的内存使用指标的平均值 /P90/P95/P99 值

New dashboard / Add Visualization / 选择 InfluxQL 数据源(influxdb-2)

在 query editor 里面输入

SELECT 
   mean(memory_used) AS avg_mem,
percentile(memory_used, 90) AS p90_mem,
percentile(memory_used, 95) AS p95_mem,
percentile(memory_used, 99) AS p99_mem
FROM devops_metrics
WHERE time > now() - 6h
    AND region='ap-northeast-1' 
    AND cell='ap-northeast-1-cell-1'
    AND microservice_name = 'zeus'
GROUP BY region, cell, microservice_name, time(1h)

Panel Title:新加坡区域 cell-1 微服务 zeus 平均/P90/P95/P99 内存使用
Graph Type:Gauge
点击 Apply button
点击 save 按钮 Save dashboard,dashboard name:influxQL-dashboard

查询 3:查询不同主机在过去 5 分钟内的平均 CPU 使用,按照每 1 分钟做统计

New dashboard / Add Visualization / 选择 InfluxQL 数据源(influxdb-2)

在 query editor 里面输入

SELECT mean(cpu_user) as mean
from
devops_metrics
where time > now() -1h
group by instance_name, time(1m)

Panel Title:查询不同主机在过去 5 分钟内的平均 CPU 使用,按照每 1 分钟做统计
Graph Type:Bar Gauge
点击 Apply button
点击 save 按钮 Save dashboard,dashboard name:influxQL-dashboard

查询 4:Top 分析,分析可以从 devops_metrics 测量(Measure)中查询平均 CPU 使用最高的三个微服务

New dashboard / Add Visualization / 选择 InfluxQL 数据源(influxdb-2)

在 query editor 里面输入

SELECT  microservice_name,TOP( mean_cpu,3)
from (select mean(cpu_user) as mean_cpu
from devops_metrics
where  time > now()- 1h
group by microservice_name)

Panel Title:CPU 使用最高的 TOP3 微服务
Graph Type:Table
点击 Apply button
点击 save 按钮 Save dashboard,dashboard name:influxQL-dashboard

查询 5:特定主机在最近 5 分钟的 CPU 使用曲线,使用线性插值函数对缺失数据插值

New dashboard / Add Visualization / 选择 InfluxQL 数据源(influxdb-2)

在 query editor 里面输入

SELECT mean(cpu_user)
FROM "devops_metrics" 
WHERE "instance_name" = 'i-AUa00Zt2-apollo-0000.amazonaws.com' AND 
time > now() - 1h
group by time(5s) fill(linear)

Panel Title;主机 apollo-0000 在最近 5 分钟的 CPU 使用曲线,使用线性插值函数对缺失数据进行插值
时间选择:last 5 minutes
Graph Type:Time Series
点击 Apply button
点击 save 按钮 Save dashboard,dashboard name:influxQL-dashboard

查询 6:查询微服务为阿波罗 CPU 使用率较低的主机信息

在 query editor 里面输入

select instance_name,p90_mem from 
(select instance_name, percentile(cpu_user, 90) AS p90_mem from devops_metrics
where time > now() - 1h
and "microservice_name" = 'apollo'
group by "region", "cell", "silo", "availability_zone", "microservice_name", "instance_name",time(15m))
where p90_mem < 30

Panel Title:查询微服务为阿波罗 CPU 使用率较低的主机信息
时间选择:last 5 minutes
Graph Type:Stat
点击 Apply button
点击 save 按钮 Save dashboard,dashboard name:influxQL-dashboard

查询 7:查询过去一个小时任务终止状态为 USER_ERROR 的事件数量

在 query editor 里面输入

select count(*) from (SELECT task_end_state
FROM devops_metrics
WHERE time > now() - 1h
    AND region = 'ap-northeast-1'
    AND cell = 'ap-northeast-1-cell-1'
    AND microservice_name = 'apollo'
    and task_end_state ='USER_ERROR')

Panel Title:查询过去一个小时任务终止状态为 USER_ERROR 的事件数量
Graph Type:Stat
点击 Apply button
点击 save 按钮 Save dashboard,dashboard name:influxQL-dashboard

查询 8:CPU_User 和 CPU_IoWait 每 5 分钟变化值

在 query editor 里面输入

SELECT DERIVATIVE(mean(cpu_user), 5m),DERIVATIVE(mean(cpu_iowait), 5m) FROM "devops_metrics" WHERE time >= now() - 1h group by time(5m)

Panel Title:CPU_User 和 CPU_IoWait 每 5 分钟变化值
Graph Type:Gauge
点击 Apply button
点击 save 按钮 Save dashboard,dashboard name:influxQL-dashboard

查询 9:5 分钟内新加坡区域 AZ-1-3 微服务为 zeus 的每 1 分钟平均 GC_Pause

在 query editor 里面输入

SELECT 
 mean(gc_pause)
FROM devops_metrics
WHERE time > now() -1h
    AND region = 'ap-northeast-1' 
    AND cell = 'ap-northeast-1-cell-5' 
    AND silo = 'ap-northeast-1-cell-5-silo-2'
    AND availability_zone = 'ap-northeast-1-3' 
    AND microservice_name = 'zeus'
GROUP BY region, 
    cell, 
    silo, 
    availability_zone, 
    microservice_name,
    instance_name, 
    process_name, 
    jdk_version     ,
   time(1m)

Panel Title:5 分钟内新加坡区域 AZ-1-3 微服务为 zeus 的每 1 分钟平均 GC_Pause
Graph Type:Time Series
点击 Apply button
点击 save 按钮 Save dashboard,dashboard name:influxQL-dashboard

整体 Dashboard 展示

总结

本 blog 着重介绍通过 Timestream for influxDB 集成 Grafana ,实现 devops 运维时序数据实时采集、存储和分析,其中包含部署架构、环境部署、数据生成、数据存储和分析,希望当您有类似时序数据存储和分析需求的时候有所启发,实现海量时序数据高效管理,挖掘时序数据中蕴含的规律、模式和价值,助力业务发展。

本篇作者

刘冰冰

亚马逊云科技数据库解决方案架构师,负责基于亚马逊云科技的数据库解决方案的咨询与架构设计,同时致力于大数据方面的研究和推广。在加入亚马逊云科技之前曾在 Oracle 工作多年,在数据库云规划、设计运维调优、DR 解决方案、大数据和数仓以及企业应用等方面有丰富的经验。

安在军

亚马逊云科技数据库高级产品经理,负责亚马逊云科技的数据库产品 Go-To-Market, 特别是 DocumentDB 和时序数据库 Timestream for InfluxDB。在过去的 10 多年一直从事数据库领域的方案以及技术在各个行业推广的工作,曾在 Oracle,Sybase 等数据库公司工作。

金川

亚马逊云科技数据库解决方案架构师,负责基于亚马逊云科技的数据库的解决方案咨询与架构设计。在加入亚马逊云科技之前曾在华为、阿里云等公司工作多年,在数据库选型与架构设计、数据库优化、数据迁移、大数据和数仓建设方面有丰富的技术经验,在金融、互联网、通信等行业有丰富的设计和实施经验。

何培培

亚马逊云科技解决方案架构师,负责基于亚马逊云科技的云计算方案架构咨询和设计。

李迎峰

亚马逊云科技解决方案架构师。负责基于亚马逊云科技云计算解决方案架构的咨询和设计,同时致力于亚马逊云科技云服务在国内半导体行业的应用和推广。在加入亚马逊云科技前,拥有超过 18 年的 IT 项目经验,曾就职于 Oracle,主要服务于大中型企事业单位客户。