当前位置:网站首页>Prometheus operation and maintenance tool promtool (IV) TSDB function
Prometheus operation and maintenance tool promtool (IV) TSDB function
2022-07-28 10:10:00 【InfoQ】
Write performance test
[[email protected] ~]# ./promtool tsdb bench write --help
usage: promtool tsdb bench write [<flags>] [<file>]
Run a write performance benchmark.
Flags:
-h, --help Show context-sensitive help (also try --help-long and --help-man).
--version Show application version.
--enable-feature= ... Comma separated feature names to enable (only PromQL related). See
https://prometheus.io/docs/prometheus/latest/feature_flags/ for the options and more
details.
--out="benchout" Set the output path.
--metrics=10000 Number of metrics to read.
--scrapes=3000 Number of scrapes to simulate.
Args:
[<file>] Input file with samples data, default is (../../tsdb/testdata/20kseries.json).
wget https://raw.githubusercontent.com/prometheus/prometheus/main/tsdb/testdata/20kseries.json
[[email protected] ~]# ./promtool tsdb bench write --metrics=10000 --scrapes=3000 ./20kseries.json
level=info ts=2022-07-27T13:21:25.546626055Z caller=head.go:493 msg="Replaying on-disk memory mappable chunks if any"
level=info ts=2022-07-27T13:21:25.546734166Z caller=head.go:536 msg="On-disk memory mappable chunks replay completed" duration=11.815µs
level=info ts=2022-07-27T13:21:25.546766084Z caller=head.go:542 msg="Replaying WAL, this may take a while"
level=info ts=2022-07-27T13:21:25.547101874Z caller=head.go:613 msg="WAL segment loaded" segment=0 maxSegment=0
level=info ts=2022-07-27T13:21:25.547131383Z caller=head.go:619 msg="WAL replay completed" checkpoint_replay_duration=38.26µs wal_replay_duration=315.491µs total_replay_duration=409.177µs
level=info ts=2022-07-27T13:21:25.549132675Z caller=db.go:1467 msg="Compactions disabled"
>> start stage=readData
>> completed stage=readData duration=145.973395ms
>> start stage=ingestScrapes
ingestion completed
>> completed stage=ingestScrapes duration=3.628682202s
> total samples: 30000000
> samples/sec: 8.267435217071414e+06
>> start stage=stopStorage
>> completed stage=stopStorage duration=1.522008202s
TSDB analysis
[[email protected] ~]# ./promtool tsdb analyze --help
usage: promtool tsdb analyze [<flags>] [<db path>] [<block id>]
Analyze churn, label pair cardinality and compaction efficiency.
Flags:
-h, --help Show context-sensitive help (also try --help-long and --help-man).
--version Show application version.
--enable-feature= ... Comma separated feature names to enable (only PromQL related). See
https://prometheus.io/docs/prometheus/latest/feature_flags/ for the options and more
details.
--limit=20 How many items to show in each list.
--extended Run extended analysis.
Args:
[<db path>] Database path (default is data/).
[<block id>] Block to analyze (default is the last block).
[[email protected] ~]# ./promtool tsdb analyze ./prometheus/data/
Block ID: 01G8ZXKAHRGF7BV0FTQYZ18FH5
Duration: 59m55.713s
Series: 606677
Label names: 26
Postings (unique label pairs): 13190
Postings entries (total label pairs): 7819776
Label pairs most involved in churning:
329487 workload_user_cattle_io_workloadselector=deployment-appops-pushgateway-flink
329487 pod_template_hash=6d695f75cf
329487 kubernetes_namespace=appops
62797 kubernetes_pod_name=pushgateway-flink-6d695f75cf-2xhfh
58524 kubernetes_pod_name=pushgateway-flink-6d695f75cf-8fq58
52495 kubernetes_pod_name=pushgateway-flink-6d695f75cf-d76n7
51544 kubernetes_pod_name=pushgateway-flink-6d695f75cf-z4bjb
22074 kubernetes_pod_name=pushgateway-flink-6d695f75cf-9jgdk
21516 kubernetes_pod_name=pushgateway-flink-6d695f75cf-96hpq
20426 kubernetes_pod_name=pushgateway-flink-6d695f75cf-9twr2
20047 kubernetes_pod_name=pushgateway-flink-6d695f75cf-ngzwz
11819 kubernetes_pod_name=pushgateway-flink-6d695f75cf-8hv9z
8242 kubernetes_pod_name=pushgateway-flink-6d695f75cf-pddrc
3783 __name__=flink_taskmanager_Status_JVM_Memory_Heap_Used
3783 __name__=flink_taskmanager_job_task_checkpointAlignmentTime
3783 __name__=flink_taskmanager_Status_JVM_ClassLoader_ClassesLoaded
3783 __name__=flink_taskmanager_Status_JVM_Threads_Count
3783 __name__=flink_taskmanager_Status_Shuffle_Netty_UsedMemorySegments
3783 __name__=flink_taskmanager_Status_Flink_Memory_Managed_Used
3783 __name__=flink_taskmanager_job_task_Shuffle_Netty_Output_Buffers_outputQueueLength
Label names most involved in churning:
329487 kubernetes_namespace
329487 kubernetes_pod_name
329487 workload_user_cattle_io_workloadselector
329487 __name__
329487 pod_template_hash
329487 job
314352 instance
314050 host
314050 tm_id
185403 task_attempt_num
185403 task_name
185403 subtask_index
185403 job_name
185403 task_id
185403 task_attempt_id
185403 job_id
15134 operator_name
15134 operator_id
66 method
55 quantile
Most common label pairs:
606565 kubernetes_namespace=appops
606565 workload_user_cattle_io_workloadselector=deployment-pushgateway-flink
606565 pod_template_hash=6d695f75cf
87063 kubernetes_pod_name=pushgateway-flink-6d695f75cf-ngzwz
87063 kubernetes_pod_name=pushgateway-flink-6d695f75cf-9jgdk
87062 kubernetes_pod_name=pushgateway-flink-6d695f75cf-96hpq
87062 kubernetes_pod_name=pushgateway-flink-6d695f75cf-9twr2
67920 kubernetes_pod_name=pushgateway-flink-6d695f75cf-2xhfh
62700 kubernetes_pod_name=pushgateway-flink-6d695f75cf-8fq58
54174 kubernetes_pod_name=pushgateway-flink-6d695f75cf-d76n7
53304 kubernetes_pod_name=pushgateway-flink-6d695f75cf-z4bjb
11892 kubernetes_pod_name=pushgateway-flink-6d695f75cf-8hv9z
8325 kubernetes_pod_name=pushgateway-flink-6d695f75cf-pddrc
6965 __name__=flink_taskmanager_job_task_Shuffle_Netty_Input_Buffers_inputFloatingBuffersUsage
6965 __name__=flink_taskmanager_job_task_numBuffersOut
6965 __name__=flink_taskmanager_job_task_isBackPressured
6965 __name__=flink_taskmanager_Status_JVM_ClassLoader_ClassesLoaded
6965 __name__=flink_taskmanager_job_task_numBuffersOutPerSecond
6965 __name__=push_time_seconds
6965 __name__=flink_taskmanager_job_task_buffers_inPoolUsage
Label names with highest cumulative label value length:
50890 task_name
42890 tm_id
34890 operator_id
34890 task_id
34890 task_attempt_id
34890 job_id
21890 job_name
18928 job
18890 operator_name
13890 host
5972 __name__
3890 task_attempt_num
3890 subtask_index
3100 instance
340 kubernetes_pod_name
40 revision
38 handler
35 workload_user_cattle_io_workloadselector
19 quantile
16 method
Highest cardinality labels:
1012 instance
1002 job
1000 operator_id
1000 task_id
1000 task_attempt_num
1000 host
1000 task_name
1000 tm_id
1000 job_id
1000 job_name
1000 task_attempt_id
1000 subtask_index
1000 operator_name
137 __name__
10 kubernetes_pod_name
7 handler
7 quantile
4 method
3 code
2 version
Highest cardinality metric names:
6965 my_batch_job_duration_seconds
6965 flink_taskmanager_Status_Flink_Memory_Managed_Used
6965 flink_taskmanager_Status_JVM_CPU_Load
6965 flink_taskmanager_Status_JVM_CPU_Time
6965 flink_taskmanager_Status_JVM_ClassLoader_ClassesLoaded
6965 flink_taskmanager_Status_JVM_ClassLoader_ClassesUnloaded
6965 flink_taskmanager_Status_JVM_GarbageCollector_PS_MarkSweep_Count
6965 flink_taskmanager_Status_JVM_GarbageCollector_PS_MarkSweep_Time
6965 flink_taskmanager_Status_JVM_GarbageCollector_PS_Scavenge_Count
6965 flink_taskmanager_Status_JVM_GarbageCollector_PS_Scavenge_Time
6965 flink_taskmanager_Status_JVM_Memory_Direct_Count
6965 flink_taskmanager_Status_JVM_Memory_Direct_MemoryUsed
6965 flink_taskmanager_Status_JVM_Memory_Direct_TotalCapacity
6965 flink_taskmanager_Status_JVM_Memory_Heap_Committed
6965 flink_taskmanager_Status_JVM_Memory_Heap_Max
6965 flink_taskmanager_Status_JVM_Memory_Heap_Used
6965 flink_taskmanager_Status_JVM_Memory_Mapped_Count
6965 flink_taskmanager_Status_JVM_Memory_Mapped_MemoryUsed
6965 flink_taskmanager_Status_JVM_Memory_Mapped_TotalCapacity
6965 flink_taskmanager_Status_JVM_Memory_Metaspace_Committed
List TSDB Data blocks
[[email protected] ~]# ./promtool tsdb list --help
usage: promtool tsdb list [<flags>] [<db path>]
List tsdb blocks.
Flags:
-h, --help Show context-sensitive help (also try --help-long and --help-man).
--version Show application version.
--enable-feature= ... Comma separated feature names to enable (only PromQL related). See
https://prometheus.io/docs/prometheus/latest/feature_flags/ for the options and more
details.
-r, --human-readable Print human readable values.
Args:
[<db path>] Database path (default is data/).
-r[[email protected] ~]# ./promtool tsdb list -r ./prometheus-pushgateway/data/
BLOCK ULID MIN TIME MAX TIME DURATION NUM SAMPLES NUM CHUNKS NUM SERIES SIZE
01G8XB6J42S6FTDMAPYV30CTR3 2022-07-26 12:00:03 +0000 UTC 2022-07-26 13:00:00 +0000 UTC 59m56.018s 78421200 435860 435412 92MiB217KiB450B
01G8XEMDR374M816NZ2NMNS5AQ 2022-07-26 13:00:03 +0000 UTC 2022-07-26 14:00:00 +0000 UTC 59m56.018s 78421200 435860 435412 92MiB217KiB825B
01G8XJ29C2JVV8PEQFR748C1QR 2022-07-26 14:00:03 +0000 UTC 2022-07-26 15:00:00 +0000 UTC 59m56.018s 78421200 435860 435412 94MiB125KiB158B
01G8XNG502K46CF1960R1FYEAA 2022-07-26 15:00:03 +0000 UTC 2022-07-26 16:00:00 +0000 UTC 59m56.018s 78421200 435860 435412 92MiB388KiB448B
01G8XRY0M2CV8J323VWM393JTZ 2022-07-26 16:00:03 +0000 UTC 2022-07-26 17:00:00 +0000 UTC 59m56.018s 78421200 435860 435412 93MiB978KiB543B
01G8XWBW82NGHBPP6QPZMJ6XAM 2022-07-26 17:00:03 +0000 UTC 2022-07-26 18:00:00 +0000 UTC 59m56.018s 78421200 435860 435412 93MiB979KiB590B
01G8XZSQW2WY7SG70Z40CW2CZV 2022-07-26 18:00:03 +0000 UTC 2022-07-26 19:00:00 +0000 UTC 59m56.018s 78421200 435860 435412 94MiB719KiB630B
Dump
[[email protected] ~]# ./promtool tsdb dump --help
usage: promtool tsdb dump [<flags>] [<db path>]
Dump samples from a TSDB.
Flags:
-h, --help Show context-sensitive help (also try --help-long and --help-man).
--version Show application version.
--enable-feature= ... Comma separated feature names to enable (only PromQL related). See
https://prometheus.io/docs/prometheus/latest/feature_flags/ for the options and more
details.
--min-time=-9223372036854775808
Minimum timestamp to dump.
--max-time=9223372036854775807
Maximum timestamp to dump.
Args:
[<db path>] Database path (default is data/).
[[email protected] ~]# ./promtool tsdb dump --min-time=1658927217000 --max-time=1658930818000 ../prometheus-pushgateway/data/
from OpenMetric Import data block
[[email protected] ~]# ./promtool tsdb create-blocks-from openmetrics --help
usage: promtool tsdb create-blocks-from openmetrics <input file> [<output directory>]
Import samples from OpenMetrics input and produce TSDB blocks. Please refer to the storage docs for more details.
Flags:
-h, --help Show context-sensitive help (also try --help-long and --help-man).
--version Show application version.
--enable-feature= ... Comma separated feature names to enable (only PromQL related). See
https://prometheus.io/docs/prometheus/latest/feature_flags/ for the options and more
details.
-r, --human-readable Print human readable values.
-q, --quiet Do not print created blocks.
Args:
<input file> OpenMetrics file to read samples from.
[<output directory>] Output directory for generated blocks.
Create data blocks for new record rules
[[email protected] ~]# ./promtool tsdb create-blocks-from rules --help
usage: promtool tsdb create-blocks-from rules --start=START [<flags>] <rule-files>...
Create blocks of data for new recording rules.
Flags:
-h, --help Show context-sensitive help (also try --help-long and --help-man).
--version Show application version.
--enable-feature= ... Comma separated feature names to enable (only PromQL related). See
https://prometheus.io/docs/prometheus/latest/feature_flags/ for the options and
more details.
-r, --human-readable Print human readable values.
-q, --quiet Do not print created blocks.
--url=http://localhost:9090
The URL for the Prometheus API with the data where the rule will be backfilled
from.
--start=START The time to start backfilling the new rule from. Must be a RFC3339 formatted date
or Unix timestamp. Required.
--end=END If an end time is provided, all recording rules in the rule files provided will
be backfilled to the end time. Default will backfill up to 3 hours ago. Must be a
RFC3339 formatted date or Unix timestamp.
--output-dir="data/" Output directory for generated blocks.
--eval-interval=60s How frequently to evaluate rules when backfilling if a value is not set in the
recording rule files.
Args:
<rule-files> A list of one or more files containing recording rules to be backfilled. All recording rules
listed in the files will be backfilled. Alerting rules are not evaluated.
[[email protected] ~]# ./promtool tsdb create-blocks-from rules \
--start 1617079873 \
--end 1617097873 \
--url http://mypromserver.com:9090 \
rules.yaml rules2.yaml
promtool tsdb create-blocks-from rules --storage.tsdb.allow-overlapping-blocks- If you execute multiple times to generate historical data , And the start time and end time overlap , Then each time the record rule is run to generate historical data, a block containing the same data will be created .
- All rules in the record rules file will be evaluated .
- If the time interval is set in the record rule file , This interval takes precedence over tsdb create-blocks-from rules In the command
--eval-intervalParameters .
- If the alarm rule is in the record rule file , Then the alarm rule will be ignored .
- Rules in the same group cannot see the results of previous rules . This means that rules that reference other rules that are generating historical data are not supported . One solution is to generate historical data many times and create dependent data first ( And move dependent data to Prometheus Server data directory , So that Prometheus API Visit it ).
summary
边栏推荐
- 图解 3 种主流企业架构模式(建议收藏!)
- Being on duty less than 8 hours a day and being dismissed? Tencent's former employees recovered 13million overtime pay, etc., and the court won a compensation of 90000 in the final judgment
- Irregular area of OSPF, LSA and serial number
- 技术人 | 研发效能的思考总结
- In php7?? And?: Differences between
- B2B e-commerce website scheme for building materials industry: enable the transformation and upgrading of building materials enterprises to achieve cost reduction and efficiency improvement
- 巧用ngx_lua做流量分组
- 【JZOF】14剪绳子
- 线程同步volatile与synchronized详解
- uni-app进阶之生命周期
猜你喜欢

pkg打包node工程

深度学习必懂的 13 种概率分布

【学习笔记】border与period

Redis面试题必知必会

In the era of home health diagnosis, Senzo creates enhanced lateral flow test products
![[OpenHarmony] [RK2206] 构建OpenHarmony编译器 (二)](/img/0c/2e8290403d64ec43d192969f776724.png)
[OpenHarmony] [RK2206] 构建OpenHarmony编译器 (二)

B2B2C系统亮点是什么?如何助力珠宝首饰企业打造全渠道多商户商城管理体系

博弈论 1.Introduction(组合游戏基本概念、对抗搜索、Bash游戏、Nim游戏)

Flink - checkpoint Failure reason: Not all required tasks are currently running

图解 3 种主流企业架构模式(建议收藏!)
随机推荐
二维前缀和
leetcode076——数组中的第 k 大的数字
医药行业数字化建设,箭在弦上
(10) Defer keyword
Read Plato farm's eplato and the reason for its high premium
21. 合并两个有序链表
JS promotion: the underlying principle of flat tiling
In the era of home health diagnosis, Senzo creates enhanced lateral flow test products
Introduction to evaluatorfilter
[openharmony] [rk2206] build openharmony compiler (2)
Plato farm - a farm meta universe game with Plato as the goal
ASP. Net core 6 framework unveiling example demonstration [29]: building a file server
OSPF的拓展配置,选路原则,防环及重发布
Irregular area of OSPF, LSA and serial number
[esp32][esp idf][lvgl7.9] failed to compile with OLED IIC
Description of landingsite electronic label quppa firmware entering DFU status
ASP.NET Core 6框架揭秘实例演示[29]:搭建文件服务器
Introduction to timebasedrollingpolicy
头文件库文件
Xiao Hei stands up again and looks at leetcode:653. Sum of two IV - enter BST