文章目录
- 本篇内容讲解
- 命令行参数详解
本篇内容讲解
prometheus高频修改命令行参数详解
命令行参数详解
- 在页面的/页面上能看到所有的命令行参数,如图所示:
- 使用shell命令查看
# ./prometheus --help
usage: prometheus [<flags>]The Prometheus monitoring serverFlags:-h, --help Show context-sensitive help (also try --help-long and --help-man).--version Show application version.--config.file="prometheus.yml"Prometheus configuration file path.--web.listen-address="0.0.0.0:9090"Address to listen on for UI, API, and telemetry.--web.config.file="" [EXPERIMENTAL] Path to configuration file that can enable TLS or authentication.--web.read-timeout=5m Maximum duration before timing out read of the request, and closing idle connections.--web.max-connections=512 Maximum number of simultaneous connections.--web.external-url=<URL> The URL under which Prometheus is externally reachable (for example, if Prometheus is served via a reverse proxy). Used for generating relative and absolute links back to Prometheus itself. If the URL has a path portion, it will be used toprefix all HTTP endpoints served by Prometheus. If omitted, relevant URL components will be derived automatically.--web.route-prefix=<path> Prefix for the internal routes of web endpoints. Defaults to path of --web.external-url.--web.user-assets=<path> Path to static asset directory, available at /user.--web.enable-lifecycle Enable shutdown and reload via HTTP request.--web.enable-admin-api Enable API endpoints for admin control actions.--web.console.templates="consoles"Path to the console template directory, available at /consoles.--web.console.libraries="console_libraries"Path to the console library directory.--web.page-title="Prometheus Time Series Collection and Processing Server"Document title of Prometheus instance.--web.cors.origin=".*" Regex for CORS origin. It is fully anchored. Example: 'https?://(domain1|domain2)\.com'--storage.tsdb.path="data/"Base path for metrics storage.--storage.tsdb.retention=STORAGE.TSDB.RETENTION[DEPRECATED] How long to retain samples in storage. This flag has been deprecated, use "storage.tsdb.retention.time" instead.--storage.tsdb.retention.time=STORAGE.TSDB.RETENTION.TIMEHow long to retain samples in storage. When this flag is set it overrides "storage.tsdb.retention". If neither this flag nor "storage.tsdb.retention" nor "storage.tsdb.retention.size" is set, the retention time defaults to 15d. UnitsSupported: y, w, d, h, m, s, ms.--storage.tsdb.retention.size=STORAGE.TSDB.RETENTION.SIZEMaximum number of bytes that can be stored for blocks. A unit is required, supported units: B, KB, MB, GB, TB, PB, EB. Ex: "512MB".--storage.tsdb.no-lockfileDo not create lockfile in data directory.--storage.tsdb.allow-overlapping-blocksAllow overlapping blocks, which in turn enables vertical compaction and vertical query merge.--storage.remote.flush-deadline=<duration>How long to wait flushing sample on shutdown or config reload.--storage.remote.read-sample-limit=5e7Maximum overall number of samples to return via the remote read interface, in a single query. 0 means no limit. This limit is ignored for streamed response types.--storage.remote.read-concurrent-limit=10Maximum number of concurrent remote read calls. 0 means no limit.--storage.remote.read-max-bytes-in-frame=1048576Maximum number of bytes in a single frame for streaming remote read response types before marshalling. Note that client might have limit on frame size as well. 1MB as recommended by protobuf by default.--rules.alert.for-outage-tolerance=1hMax time to tolerate prometheus outage for restoring "for" state of alert.--rules.alert.for-grace-period=10mMinimum duration between alert and restored "for" state. This is maintained only for alerts with configured "for" time greater than grace period.--rules.alert.resend-delay=1mMinimum amount of time to wait before resending an alert to Alertmanager.--alertmanager.notification-queue-capacity=10000The capacity of the queue for pending Alertmanager notifications.--query.lookback-delta=5m The maximum lookback duration for retrieving metrics during expression evaluations and federation.--query.timeout=2m Maximum time a query may take before being aborted.--query.max-concurrency=20Maximum number of queries executed concurrently.--query.max-samples=50000000Maximum number of samples a single query can load into memory. Note that queries will fail if they try to load more samples than this into memory, so this also limits the number of samples a query can return.--enable-feature= ... Comma separated feature names to enable. Valid options: promql-at-modifier, promql-negative-offset, remote-write-receiver, exemplar-storage, expand-external-labels. See https://prometheus.io/docs/prometheus/latest/feature_flags/ for moredetails.--log.level=info Only log messages with the given severity or above. One of: [debug, info, warn, error]--log.format=logfmt Output format of log messages. One of: [logfmt, json]
-
重要参数讲解
-
--web.listen-address=“0.0.0.0:9090” 代表prometheus监听的地址,多个prometheus实例在一起时候会争抢。
-
--storage.tsdb.path=“data/” 本地tsdb存储位置
-
--storage.tsdb.retention.time 代表数据保留时间 默认15天
-
--web.enable-lifecycle 代表开启热更新配置
-
热更新演示:
修改prometheus配置文件参数:
vim prometheus.yml
# my global config
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.# scrape_timeout is set to the global default (10s).# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:# - "first_rules.yml"# - "second_rules.yml"# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: "prometheus"scrape_interval: 10s # 添加本行# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ["localhost:9090"]
# 热更新:
curl -X POST -vvv localhost:9090/-/reload
* About to connect() to localhost port 9090 (#0)
* Trying ::1...
* Connected to localhost (::1) port 9090 (#0)
> POST /-/reload HTTP/1.1
> User-Agent: curl/7.29.0
> Host: localhost:9090
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Mon, 28 Apr 2025 10:42:50 GMT
< Content-Length: 0
<
* Connection #0 to host localhost left intact
验证: