运维系列.在Docker中使用Grafana

运维专题
在Docker中使用Grafana

- 文章信息 - Author: 李俊才 (jcLee95)
Visit me at CSDN: https://jclee95.blog.csdn.net
My WebSitehttp://thispage.tech/
Email: 291148484@163.com.
Shenzhen China
Address of this article:https://blog.csdn.net/qq_28550263/article/details/139602943
HuaWei:https://bbs.huaweicloud.com/blogs/428859

【介绍】:本文介绍在Docker中使用Grafana的相关事项。

在这里插入图片描述


1. 概述

本文介绍通过官方Docker镜像安装Grafana。具体来说,它涵盖了通过Docker命令行界面(CLI)和docker-compose运行Grafana。

Grafana Docker镜像有两个版本:

  1. Grafana Enterprise: grafana/grafana-enterprise

  2. Grafana开源版: grafana/grafana-oss

推荐直接使用Grafana Enterprise默认版本。因为它是免费的,包含了所有OSS(开源)版本的功能。此外,还可以选择升级到完整的企业功能集,其中包括对企业插件的支持。

2. Grafana容器的基本用法

2.1 通过Docker CLI运行Grafana

本节将展示如何使用Docker CLI运行Grafana。要运行最新稳定版本的Grafana,请运行以下命令:

docker run -d -p 3000:3000 --name=grafana grafana/grafana-enterprise

如需停止Grafana容器,则使用docker stop,就像其它任何docker容器用法一样:

docker stop grafana

这里,我们通过容器名grafana来操作,是因为我们实例化容器(run)时,通过--name=grafana指定了容器名为grafana。因此下次你需要启动时,可以继续使用此名称来启动grafana容器:

docker start grafana

2.2 保存Grafana数据

默认情况下,Grafana使用嵌入式 SQLite3 数据库来存储配置、用户、仪表板和其他数据。当你将Docker镜像作为容器运行时,对这些Grafana数据的更改将写入容器内的文件系统,该文件系统只会在容器存在时持续存在。如果停止并删除容器,任何文件系统更改(即Grafana数据)都将被丢弃。为避免丢失数据,你可以使用 Docker卷 或绑定挂载为容器设置持久存储。

2.2.1 使用Docker卷

如果希望Docker引擎管理存储卷时,请使用Docker卷。要使用Docker卷进行持久存储,请完成以下步骤:

  1. 创建一个Docker卷供Grafana容器使用,并为其指定一个描述性名称(例如grafana-storage)。运行以下命令:
docker volume create grafana-storage

2.2.2 使用绑定挂载

如果计划在Docker中运行Grafana时将主机上的目录用于数据库或配置,则必须使用具有访问和写入映射目录权限的用户启动容器。

要使用绑定挂载,请运行以下命令:

mkdir data
docker run -d -p 3000:3000 --name=grafana \
  --user "$(id -u)" \  
  --volume "$PWD/data:/var/lib/grafana" \
  grafana/grafana-enterprise  

2.3 Grafana环境变量

就像使用MySQL官方镜像,使用Grafana也支持使用环境变量指定某些自定义配置设置。例如:

docker run -d -p 3000:3000 --name=grafana \
  -e "GF_LOG_LEVEL=debug" \
  grafana/grafana-enterprise  

3. 在Grafana容器中安装插件

你可以从官方和社区插件页面或使用自定义URL安装Grafana中的插件以安装私有插件。这些插件允许你添加新的可视化类型、数据源和应用程序,以更好地可视化数据。

Grafana目前支持三种类型的插件:面板数据源应用程序

3.1 安装步骤

要在Docker容器中安装插件,请完成以下步骤:

  1. 将要安装的插件作为逗号分隔列表传递给带有GF_INSTALL_PLUGINS环境变量的Docker。这会在Grafana启动时将每个插件名称发送到grafana-cli plugins install ${plugin}并安装它们。例如:
docker run -d -p 3000:3000 --name=grafana \
  -e "GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource" \  
  grafana/grafana-enterprise
  1. 要指定插件的版本,请将版本号添加到GF_INSTALL_PLUGINS环境变量。例如:
docker run -d -p 3000:3000 --name=grafana \
  -e "GF_INSTALL_PLUGINS=grafana-clock-panel 1.0.1" \
  grafana/grafana-enterprise  

着你如果你不指定版本号,将默认使用最新版本。

  1. 要从自定义URL安装插件,请使用以下约定指定URL:<url to plugin zip>;<plugin install directory name>。例如:
docker run -d -p 3000:3000 --name=grafana \
  -e "GF_INSTALL_PLUGINS=https://github.com/VolkovLabs/custom-plugin.zip;custom-plugin" \
  grafana/grafana-enterprise

以下示例运行最新稳定版本的Grafana,监听端口3000,容器名为grafana,在grafana-storage docker卷中持久存储,设置服务器根URL,并安装官方时钟面板插件。

docker volume create grafana-storage

docker run -d -p 3000:3000 --name=grafana \
  --volume grafana-storage:/var/lib/grafana \
  -e "GF_SERVER_ROOT_URL=http://my.grafana.server/" \
  -e "GF_INSTALL_PLUGINS=grafana-clock-panel" \
  grafana/grafana-enterprise

4. 通过Docker Compose运行Grafana

实际项目中,更加常用的不是通过命令,而是是使用Docker Compose来定义和共享由多个容器组成的应用程序。通过编写YAML文件(docker-compose.yaml),列出了组成应用程序的所有服务。然后可以使用单个命令以正确的顺序启动容器,并使用另一个命令关闭它们。

4.1 运行最新稳定版Grafana

本节展示如何使用Docker Compose运行Grafana。本节中的示例使用Compose版本3。

要使用Docker Compose运行最新稳定版本的Grafana,请完成以下步骤:

  1. 创建一个docker-compose.yaml文件。

  2. 将以下代码添加到docker-compose.yaml文件中。例如:

version: "3.8"
services:
  grafana:
    image: grafana/grafana-enterprise 
    container_name: grafana
    restart: unless-stopped
    ports:
     - '3000:3000'
  1. 要运行docker-compose.yaml,请运行以下命令:
docker compose up -d

其中,d表示分离模式,up表示启动容器并运行。在Docker Compose中,要停止Grafana容器,需要使用down命令:

docker compose down  

4.2 持久化数据

与之前类似,我们可以使用Docker卷或绑定挂载为容器设置持久存储,以避免丢失数据。

4.2.1 使用Docker卷

现在我们先创建一个docker-compose.yaml文件,并将以下代码添加到docker-compose.yaml文件中:

version: '3.8'
services:
  grafana:
    image: grafana/grafana-enterprise
    container_name: grafana 
    restart: unless-stopped
    ports:
      - '3000:3000'
    volumes:
      - grafana-storage:/var/lib/grafana
volumes:
  grafana-storage: {}

保存文件并运行以下命令可编译运行容器:

docker compose up -d

4.2.2 使用绑定挂载

创建要挂载数据的目录,在本例中为当前工作目录中的/data:

mkdir $PWD/data

对应的docker-compose.yaml如:

version: '3.8'
services:
  grafana:
    image: grafana/grafana-enterprise
    container_name: grafana
    restart: unless-stopped 
    user: '0'
    ports:
      - '3000:3000'
    volumes:
      - '$PWD/data:/var/lib/grafana'

在为Grafana容器设置持久化存储时,我们介绍了两种方法,使用Docker卷、使用绑定挂载。

从配置的角度来看,使用Docker卷需要在docker-compose.yaml文件中的volumes部分定义一个命名卷(如grafana-storage),并将其挂载到容器内的特定路径(如/var/lib/grafana)。Docker会自动创建并管理这个命名卷。

而使用绑定挂载时,我们需要在docker-compose.yaml文件中直接将主机的目录路径(如$PWD/data)挂载到容器内的特定路径(如/var/lib/grafana),并且需要提前在主机上创建这个目录。

从数据管理的角度来看,使用Docker卷时,数据由Docker管理,存储在Docker主机的文件系统中,但与主机的文件系统分离。用户不需要关心数据的具体存储位置,Docker会自动管理数据的创建、存储和删除。

而使用绑定挂载时,数据存储在用户指定的主机目录中,用户需要自行管理这个目录的创建、权限设置等,对数据的存储位置有完全的控制权。

另外,从跨主机迁移的角度来看,使用Docker卷迁移数据需要将Docker卷从一个主机复制到另一个主机,或者使用分布式存储系统。而使用绑定挂载迁移数据只需要将主机上的目录复制到另一个主机的相同位置即可。

5. 构建你自己的Grafana镜像

在某些情况下,你可能需要构建自己的Grafana Docker镜像。例如,你可能想要使用不同的基础镜像,更改日志记录级别,在云上定义秘密,或配置插件。本节将介绍如何构建自定义的Grafana Docker镜像。

5.1 Alpine Linux发行版

Grafana官方提供的Docker镜像有两种变体:AlpineUbuntu。默认情况下,这些镜像是使用广泛使用的Alpine Linux项目基础镜像构建的。

Alpine Linux是一个独立的、非商业的通用Linux发行版,专为追求安全性、简单性和资源效率的用户而设计。与其他发行版的基础镜像相比,Alpine要小得多,从而可以创建更精简、更安全的镜像。

如果你重视安全性并希望最小化镜像的大小,建议使用Alpine变体。然而,重要的是要注意,Alpine变体使用musl libc而不是glibc和其他库。因此,某些软件可能会因其libc需求而遇到问题。尽管如此,大多数软件应该不会遇到任何问题,因此Alpine变体通常是可靠的。

目前市面上很多官方镜像都是基于Alpine,而不是UbuntuCentOS、等流行的发行版本的,主要也是因为Alpine镜像更小。

5.2 示例:构建预装zabbix插件的自定义Grafana镜像

Grafana GitHub仓库中,packaging/docker/custom/目录包含一个Dockerfile(考虑到一些读者github内地访问可能受阻,这部分内容请参考附录1),你可以使用它来构建自定义的Grafana镜像。Dockerfile接受GRAFANA_VERSION、GF_INSTALL_PLUGINS和GF_INSTALL_IMAGE_RENDERER_PLUGIN作为构建参数。

以下示例演示了如何构建和运行预装zabbix插件的自定义Grafana Docker镜像。

# 进入custom目录
cd packaging/docker/custom

# 运行构建命令,指定Grafana版本和要安装的zabbix插件
docker build \
  --build-arg "GRAFANA_VERSION=latest" \
  --build-arg "GF_INSTALL_PLUGINS=alexanderzobnin-zabbix-app" \
  -t grafana-custom-zabbix .

# 使用docker run命令运行自定义Grafana容器
docker run -d -p 3000:3000 --name=grafana grafana-custom-zabbix  

这个自定义镜像基于最新的官方Grafana Docker镜像,并在构建时预装了zabbix插件。通过这种方式,当你运行该自定义镜像时,Grafana将在启动时自动加载zabbix插件,无需再手动安装。

F. 附录

F.1 grafana custom Dockerfile

这个Dockerfile文件是grafana官方给出的,原地址为https://github.com/grafana/grafana/blob/main/packaging/docker/custom/Dockerfile,为方便内地读者,粘贴到此。

ARG GRAFANA_VERSION="latest"

FROM grafana/grafana:${GRAFANA_VERSION}

ARG GF_INSTALL_IMAGE_RENDERER_PLUGIN="false"

ARG GF_GID="0"

ENV GF_PATHS_PLUGINS="/var/lib/grafana-plugins"
ENV GF_PLUGIN_RENDERING_CHROME_BIN="/usr/bin/chrome"

USER root

RUN mkdir -p "$GF_PATHS_PLUGINS" && \
    chown -R grafana:${GF_GID} "$GF_PATHS_PLUGINS" && \
    if [ $GF_INSTALL_IMAGE_RENDERER_PLUGIN = "true" ]; then \
      if grep -i -q alpine /etc/issue; then \
        apk add --no-cache udev ttf-opensans chromium && \
        ln -s /usr/bin/chromium-browser "$GF_PLUGIN_RENDERING_CHROME_BIN"; \
      else \
        cd /tmp && \
        curl -sLO https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && \
        DEBIAN_FRONTEND=noninteractive && \
        apt-get update -q && \
        apt-get install -q -y ./google-chrome-stable_current_amd64.deb && \
        rm -rf /var/lib/apt/lists/* && \
        rm ./google-chrome-stable_current_amd64.deb && \
        ln -s /usr/bin/google-chrome "$GF_PLUGIN_RENDERING_CHROME_BIN"; \
      fi \
    fi

USER grafana

RUN if [ $GF_INSTALL_IMAGE_RENDERER_PLUGIN = "true" ]; then \
      if grep -i -q alpine /etc/issue; then \
        grafana-cli \
          --pluginsDir "$GF_PATHS_PLUGINS" \
          --pluginUrl https://github.com/grafana/grafana-image-renderer/releases/latest/download/plugin-alpine-x64-no-chromium.zip \
          plugins install grafana-image-renderer; \
      else \
        grafana-cli \
          --pluginsDir "$GF_PATHS_PLUGINS" \
          --pluginUrl https://github.com/grafana/grafana-image-renderer/releases/latest/download/plugin-linux-x64-glibc-no-chromium.zip \
          plugins install grafana-image-renderer; \
      fi \
    fi

ARG GF_INSTALL_PLUGINS=""

RUN if [ ! -z "${GF_INSTALL_PLUGINS}" ]; then \
      OLDIFS=$IFS; \
      IFS=','; \
      set -e ; \
      for plugin in ${GF_INSTALL_PLUGINS}; do \
        IFS=$OLDIFS; \
        if expr match "$plugin" '.*\;.*'; then \
          pluginUrl=$(echo "$plugin" | cut -d';' -f 1); \
          pluginInstallFolder=$(echo "$plugin" | cut -d';' -f 2); \
          grafana-cli --pluginUrl ${pluginUrl} --pluginsDir "${GF_PATHS_PLUGINS}" plugins install "${pluginInstallFolder}"; \
        else \
          grafana-cli --pluginsDir "${GF_PATHS_PLUGINS}" plugins install ${plugin}; \
        fi \
      done \
    fi

F.2 grafana的其它平台版本下载地址

F.2.1 Linux版本

Ubuntu和Debian(64位)的SHA256:42c576ba4e5fad6ddbc68301a983f28e459256498eb655b4229a5ce660d1f70a

sudo apt-get install -y adduser libfontconfig1 musl
wget https://dl.grafana.com/enterprise/release/grafana-enterprise_11.0.0_amd64.deb
sudo dpkg -i grafana-enterprise_11.0.0_amd64.deb

阅读Ubuntu / Debian 安装指南 获取更多信息。我们还提供一个 APT 软件包存储库。

独立的Linux二进制文件(64位)的SHA256:6b80cd453bf834d17106817e23b481b9c8c303ce75670e03e279e2231b1a12ba

wget https://dl.grafana.com/enterprise/release/grafana-enterprise-11.0.0.linux-amd64.tar.gz
tar -zxvf grafana-enterprise-11.0.0.linux-amd64.tar.gz

Red Hat、CentOS、RHEL和Fedora(64位)的SHA256:26964ac20e6dd0c3c89850e6e3e3e8200200e6b18f0a1523c5f79b7079d66b39

sudo yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-11.0.0-1.x86_64.rpm

阅读Red Hat和Fedora的 安装指南 获取更多信息。我们还提供一个 YUM 软件包存储库。

OpenSUSE和SUSE(64位)的SHA256:26964ac20e6dd0c3c89850e6e3e3e8200200e6b18f0a1523c5f79b7079d66b39

wget https://dl.grafana.com/enterprise/release/grafana-enterprise-11.0.0-1.x86_64.rpm
sudo rpm -Uvh grafana-enterprise-11.0.0-1.x86_64.rpm

还有一个 YUM / zypper 软件包存储库。

F.2.2 Windows版本

Windows安装程序(64位)的SHA256:f34e9ed5ef1bad2ee08784602f86d6539ae97d72bd163896240b9a29c3b4e83a

下载安装程序(grafana-enterprise-11.0.0.windows-amd64.msi)并运行它。

独立的Windows二进制文件(64位)的SHA256:ac5c7089057533d531dad8c7d30bc5b45ce65c03a7b39c699bc975bb604eb788

下载zip文件(grafana-enterprise-11.0.0.windows-amd64.zip)并按照下面安装指南中的说明进行操作。

阅读Windows 安装指南。

F.2.3 Mac 版本

这段文本是关于Grafana的安装指南和一些命令行操作的说明。它的翻译大致如下:

独立的 MacOS/Darwin 二进制文件(64 位)SHA256: 7c3ad3255b06574032c1ed28ab110ecbcf8875d82b9af698fe166f49706ffe28

阅读 MacOS 安装指南 以获取更多信息。

curl -O https://dl.grafana.com/enterprise/release/grafana-enterprise-11.0.0.darwin-amd64.tar.gz
tar -zxvf grafana-enterprise-11.0.0.darwin-amd64.tar.gz

F.2.4 Linux Arm64版本

Ubuntu 和 Debian(ARM64)SHA256:3d9ee819cda2484597f5d48857beaa666089933a87652088f0668458b6f7a92b

sudo apt-get install -y adduser libfontconfig1 musl
wget https://dl.grafana.com/enterprise/release/grafana-enterprise_11.0.0_arm64.deb
sudo dpkg -i grafana-enterprise_11.0.0_arm64.deb

独立的 Linux 二进制文件(ARM64)SHA256:50d20c6ee3eb5c7c4fbadba21ea7367ca88e490d33a73a893664b56c84b0b0d3

wget https://dl.grafana.com/enterprise/release/grafana-enterprise-11.0.0.linux-arm64.tar.gz
tar -zxvf grafana-enterprise-11.0.0.linux-arm64.tar.gz

Red Hat、CentOS、RHEL 和 Fedora(ARM64)SHA256:ad6a0c5350f35fc989c22bf7fcf80f8657672e035c10e2817482f4cac5f6bac6

sudo yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-11.0.0-1.aarch64.rpm

OpenSUSE 和 SUSE(ARM64)SHA256:ad6a0c5350f35fc989c22bf7fcf80f8657672e035c10e2817482f4cac5f6bac6

wget https://dl.grafana.com/enterprise/release/grafana-enterprise-11.0.0-1.aarch64.rpm
sudo rpm -Uvh grafana-enterprise-11.0.0-1.aarch64.rpm

F.3 配置项参考

F.3.1 元始defaults.ini文件

在使用Docker容器运行Grafana时,defaults.ini文件通常位于容器内的/etc/grafana目录下。一般具体路径为:/etc/grafana/grafana.ini
Grafana的defaults.ini文件列出了所有默认配置项及其说明。你也可以在Grafana的GitHub仓库中找到这个文件:https://github.com/grafana/grafana/blob/main/conf/defaults.ini

##################### Grafana Configuration Defaults #####################
#
# 不要修改此文件在Grafana安装中
#

# 可选值: production, development
app_mode = production

# 实例名称,默认取值为HOSTNAME环境变量值或hostname(如果HOSTNAME变量为空)
instance_name = ${HOSTNAME}

#################################### Paths ###############################
[paths]
# Grafana存储临时文件、会话和sqlite3数据库的路径(如果使用sqlite3数据库)
data = data

# 删除`data`目录中超过给定持续时间的临时文件
temp_data_lifetime = 24h

# Grafana存储日志的目录
logs = data/log

# Grafana自动扫描并查找插件的目录
plugins = data/plugins

# 包含Grafana在启动和运行时应用的配置文件的文件夹
provisioning = conf/provisioning

#################################### Server ##############################
[server]
# 协议 (http, https, h2, socket)
protocol = http

# 允许的最小TLS版本。默认此值为空。接受的值:TLS1.2, TLS1.3。如果未设置,则默认使用TLS1.2
min_tls_version = ""

# 绑定的IP地址,留空将绑定到所有接口
http_addr =

# 使用的HTTP端口
http_port = 3000

# 从浏览器访问Grafana时使用的公开域名
domain = localhost

# 如果主机头与域名不匹配,则重定向到正确的域名
# 防止DNS重绑定攻击
enforce_domain = false

# 完整的公开URL
root_url = %(protocol)s://%(domain)s:%(http_port)s/

# 是否从`root_url`设置指定的子路径提供Grafana服务。默认情况下为了兼容性设置为`false`
serve_from_sub_path = false

# 记录Web请求
router_logging = false

# 相对工作路径的路径
static_root_path = public

# 启用gzip
enable_gzip = false

# HTTPS证书和密钥文件
cert_file =
cert_key =

# 证书文件监控间隔
certs_watch_interval =

# Unix套接字gid
# 更改文件的gid需要目标组在进程的组中且进程是文件所有者
# 建议将gid设置为HTTP服务器用户gid
# 如果值为-1则不设置
socket_gid = -1

# Unix套接字模式
socket_mode = 0660

# Unix套接字路径
socket = /tmp/grafana.sock

# CDN URL
cdn_url =

# 在关闭空闲连接之前读取传入请求的最大时间(分钟)。
# `0`表示读取请求没有超时
read_timeout = 0

# 此设置允许您指定服务器添加到HTTP(S)响应的附加头
[server.custom_response_headers]
#exampleHeader1 = exampleValue1
#exampleHeader2 = exampleValue2

[environment]
# 设置本地文件系统是否可供Grafana使用。默认为true以保持向后兼容
local_file_system_available = true

#################################### GRPC Server #########################
[grpc_server]
network = "tcp"
address = "127.0.0.1:10000"
use_tls = false
cert_file =
key_file =
# 记录每个一元gRPC调用的请求和响应
enable_logging = false

# 可以接收的最大消息大小(字节)。如果未设置,则使用gRPC默认值(4MiB)
max_recv_msg_size =

# 可以发送的最大消息大小(字节)。如果未设置,则使用gRPC默认值(无限制)
max_send_msg_size =

#################################### Database ############################
[database]
# 可以通过分别指定类型、主机、名称、用户和密码来配置数据库连接
# 也可以使用url属性将其作为一个字符串指定

# 选择 "mysql", "postgres" 或 "sqlite3"
type = sqlite3
host = 127.0.0.1:3306
name = grafana
user = root
# 如果密码包含 # 或 ; 则必须用三重引号括起来。 例如 """#password;"""
password =
# 使用URL或前面的字段配置数据库
# 例如: mysql://user:secret@host:port/database
url =

# 最大空闲连接数,默认为2
max_idle_conn = 2

# 最大连接数,默认为0(表示未设置)
max_open_conn =

# 连接的最大生命周期,默认是14400秒(4小时)
conn_max_lifetime = 14400

# 设置为true以记录SQL调用和执行时间
log_queries =

# 对于 "postgres",使用 "disable", "require" 或 "verify-full"
# 对于 "mysql",使用 "true", "false", 或 "skip-verify"
ssl_mode = disable

# 对于 "postgres",使用 "1" 启用或 "0" 禁用SNI
ssl_sni =

# 数据库驱动程序可能支持不同的事务隔离级别。
# 目前,仅 "mysql" 驱动程序支持隔离级别。
# 如果值为空 - 应用驱动程序的默认隔离级别。
# 对于 "mysql" 使用 "READ-UNCOMMITTED", "READ-COMMITTED", "REPEATABLE-READ" 或 "SERIALIZABLE"
isolation_level =

ca_cert_path =
client_key_path =
client_cert_path =
server_cert_name =

# 仅对于 "sqlite3",相对于data_path设置的路径
path = grafana.db

# 仅对于 "sqlite3"。连接数据库时使用的缓存模式设置
cache_mode = private

# 仅对于 "sqlite3"。启用/禁用预写日志,https://sqlite.org/wal.html。默认值为false。
wal = false

# 对于 "mysql" 和 "postgres"。锁定数据库以进行迁移,默认值为true
migration_locking = true

# 仅当migrationLocking设置时适用于 "mysql" 和 "postgres"。在未能锁定数据库以进行迁移之前等待的秒数,默认值为0
locking_attempt_timeout_sec = 0

# 仅适用于 "sqlite"。在数据库锁定失败的情况下重试查询的次数。默认值为0(禁用)。
query_retries = 0

# 仅适用于 "sqlite"。在数据库锁定失败的情况下重试事务的次数。默认值为5
transaction_retries = 5

# 设置为true以为数据库查询添加指标和追踪
instrument_queries = false
#################################### 缓存服务器 #############################
[remote_cache]
# 可以是 "redis", "memcached" 或 "database",默认是 "database"
type = database

# 缓存连接字符串选项
# database: 将使用 Grafana 主数据库。
# redis: 配置类似 redis 服务器,例如 `addr=127.0.0.1:6379,pool_size=100,db=0,ssl=false`。只有 addr 是必需的。ssl 可以是 'true', 'false' 或 'insecure'。
# memcache: 127.0.0.1:11211
connstr =

# 前缀,添加到远程缓存的所有键前
prefix =

# 启用存储在远程缓存中的值的加密
encryption =

#################################### 数据代理 ###########################
[dataproxy]

# 启用数据代理日志记录,默认是 false
logging = false

# 数据代理在超时前等待读取响应头的时间,默认是 30 秒。
# 此设置也适用于核心后端 HTTP 数据源,其中查询请求使用设置了超时的 HTTP 客户端。
timeout = 30

# 数据代理在超时前等待建立 TCP 连接的时间,默认是 10 秒。
dialTimeout = 10

# 数据代理在发送 keepalive 请求前等待的秒数。
keep_alive_seconds = 30

# 数据代理在超时前等待成功的 TLS 握手的秒数。
tls_handshake_timeout_seconds = 10

# 在完全写入请求头后,数据代理在超时前等待服务器的第一个响应头的秒数(如果请求有 "Expect: 100-continue" 头)。值为 0 将导致立即发送主体,而无需等待服务器批准。
expect_continue_timeout_seconds = 1

# 可选地限制每个主机的总连接数,包括拨号、活动和空闲状态下的连接。达到限制时,拨号将阻塞。
# 值为零(0)表示无限制。
max_conns_per_host = 0

# Grafana 将保持的最大空闲连接数。
max_idle_connections = 100

# 数据代理在超时前保持空闲连接打开的秒数。
idle_conn_timeout_seconds = 90

# 如果启用且用户不是匿名的,数据代理将在请求中添加 X-Grafana-User 头,其中包含用户名。
send_user_header = false

# 限制从传出的 HTTP 请求响应中读取/接受的字节数。
response_limit = 0

# 限制 Grafana 将处理的来自 SQL 数据源的行数。
row_limit = 1000000

# 设置用于传出的数据代理请求的 `User-Agent` 头的自定义值。如果为空,默认值为 `Grafana/<BuildVersion>`(例如 `Grafana/9.0.0`)。
user_agent =

#################################### 分析 ###########################
[analytics]
# 服务器报告,每 24 小时向 stats.grafana.org 发送使用计数。
# 没有跟踪 IP 地址,只是简单的计数器,用于跟踪
# 运行实例、仪表板和错误计数。对我们非常有帮助。
# 将此选项更改为 false 可禁用报告。
reporting_enabled = true

# Grafana 实例的分发者名称。例如 hosted-grafana, grafana-labs
reporting_distributor = grafana-labs

# 设置为 false 以禁用所有对 https://grafana.com 的检查
# 用于获取 grafana 新版本。此检查用于
# 在某些 UI 视图中通知 grafana 更新存在。
# 此选项不会导致任何自动更新,也不会发送任何信息
# 只会向 https://grafana.com/api/grafana/versions/stable 发送一个 GET 请求以获取最新版本。
check_for_updates = true

# 设置为 false 以禁用所有对 https://grafana.com 的检查
# 用于获取插件的新版本。此检查用于
# 在某些 UI 视图中通知插件更新存在。
# 此选项不会导致任何自动更新,也不会发送任何信息
# 只会向 https://grafana.com 发送一个 GET 请求以获取最新版本。
check_for_plugin_updates = true

# Google Analytics 通用跟踪代码,只有在此处指定 id 时才启用
google_analytics_ua_id =

# Google Analytics 4 跟踪代码,只有在此处指定 id 时才启用
google_analytics_4_id =

# 启用 Google Analytics 4 增强事件测量时,我们将尝试避免发送重复事件,并让 Google Analytics 4 检测导航更改等。
google_analytics_4_send_manual_page_views = false

# Google Tag Manager ID,只有在此处指定 id 时才启用
google_tag_manager_id =

# Rudderstack 写密钥,仅在 rudderstack_data_plane_url 也设置时启用
rudderstack_write_key =

# Rudderstack 数据平面 URL,仅在 rudderstack_write_key 也设置时启用
rudderstack_data_plane_url =

# Rudderstack SDK URL,可选,仅在 rudderstack_write_key 和 rudderstack_data_plane_url 也设置时有效
rudderstack_sdk_url =

# Rudderstack 配置 URL,可选,用于 Rudderstack SDK 获取源配置
rudderstack_config_url =

# Rudderstack 集成 URL,可选。仅在传递 SDK 版本 1.1 或更高版本时有效
rudderstack_integrations_url =

# Intercom 秘密,可选,用于在通过 Rudderstack 传递给 Intercom 之前对 user_id 进行哈希处理
intercom_secret =

# Application Insights 连接字符串。指定一个 URL 字符串以启用此功能。
application_insights_connection_string =

# 可选。指定一个 Application Insights 端点 URL,其中端点字符串用反引号 ` 包含。
application_insights_endpoint_url =

# 控制 UI 是否包含任何用户反馈表单的链接
feedback_links_enabled = true

#################################### 安全性 ############################
[security]
# 禁用首次启动 grafana 时创建管理员用户
disable_initial_admin_creation = false

# 默认管理员用户,启动时创建
admin_user = admin

# 默认管理员密码,可以在首次启动 grafana 之前或在个人资料设置中更改
admin_password = admin

# 默认管理员电子邮件,启动时创建
admin_email = admin@localhost

# 用于签名
secret_key = SW2YcwTIb9zpOOhoPsMm

# 当前用于信封加密的密钥提供者,默认为 secret_key 指定的静态值
encryption_provider = secretKey.v1

# 配置的密钥提供者列表,空格分隔(仅限企业版):例如 awskms.v1 azurekv.v1
available_encryption_providers =

# 禁用 gravatar 个人资料图片
disable_gravatar = false

# 数据源代理白名单(ip_or_domain:port,用空格分隔)
data_source_proxy_whitelist =

# 禁用针对暴力登录尝试的保护
disable_brute_force_login_protection = false

# 如果您在 HTTPS 后面托管 Grafana,请设置为 true。默认是 false。
cookie_secure = false

# 设置 cookie SameSite 属性。默认值为 `lax`。可以设置为 "lax", "strict", "none" 和 "disabled"
cookie_samesite = lax

# 如果您希望允许浏览器在 <frame>, <iframe>, <embed> 或 <object> 中渲染 Grafana,请设置为 true。默认是 false。
allow_embedding = false

# 设置为 true 以启用 HTTP 严格传输安全 (HSTS) 响应头。
# HSTS 告诉浏览器该站点应该仅使用 HTTPS 访问。
strict_transport_security = false

# 设置浏览器应缓存 HSTS 的时间长度。仅在启用 strict_transport_security 时应用。
strict_transport_security_max_age_seconds = 86400

# 设置为 true 以启用 HSTS 预加载选项。仅在启用 strict_transport_security 时应用。
strict_transport_security_preload = false

# 设置为 true 以启用 HSTS includeSubDomains 选项。仅在启用 strict_transport_security 时应用。
strict_transport_security_subdomains = false

# 设置为 true 以启用 X-Content-Type-Options 响应头。
# X-Content-Type-Options 响应 HTTP 头是服务器使用的标记,用于指示 Content-Type 头中声明的 MIME 类型不应更改并且应遵循。
x_content_type_options = true

# 设置为 true 以启用 X-XSS-Protection 头,它告诉浏览器在检测到反射的跨站脚本 (XSS) 攻击时停止加载页面。
x_xss_protection = true

# 启用将 Content-Security-Policy 头添加到请求中。
# CSP 允许控制用户代理允许加载的资源,并有助于防止 XSS 攻击。
content_security_policy = false

# 设置在将 Content-Security-Policy 头添加到请求时使用的内容安全策略模板。
# 模板中的 $NONCE 包含一个随机 nonce。
# $ROOT_PATH 是 server.root_url 去掉协议部分。
content_security_policy_template = """script-src 'self' 'unsafe-eval' 'unsafe-inline' 'strict-dynamic' $NONCE;object-src 'none';font-src 'self';style-src 'self' 'unsafe-inline' blob:;img-src * data:;base-uri 'self';connect-src 'self' grafana.com ws://$ROOT_PATH wss://$ROOT_PATH;manifest-src 'self';media-src 'none';form-action 'self';"""

# 启用将 Content-Security-Policy-Report-Only 头添加到请求中。
# 允许监视策略的效果而不强制执行。
content_security_policy_report_only = false

# 设置在将 Content-Security-Policy-Report-Only 头添加到请求时使用的内容安全策略仅报告模板。
# 模板中的 $NONCE 包含一个随机 nonce。
# $ROOT_PATH 是 server.root_url 去掉协议部分。
content_security_policy_report_only_template = """script-src 'self' 'unsafe-eval' 'unsafe-inline' 'strict-dynamic' $NONCE;object-src 'none';font-src 'self';style-src 'self' 'unsafe-inline' blob:;img-src * data:;base-uri 'self';connect-src 'self' grafana.com ws://$ROOT_PATH wss://$ROOT_PATH;manifest-src 'self';media-src 'none';form-action 'self';"""

# 控制是否支持旧的 angular 插件。
angular_support_enabled = false

# 即使请求没有登录 cookie,也会执行 CSRF 检查。
csrf_always_check = false

# 逗号分隔的插件 ID 列表,这些插件不会加载到前端沙箱中
disable_frontend_sandbox_for_plugins = grafana-incident-app

[security.encryption]
# 定义解密后的数据加密密钥存储在内存(缓存)中的生存时间 (TTL)。
# 请注意,小值可能会导致由于高频率解密操作而导致的性能问题。
data_keys_cache_ttl = 15m

# 定义数据加密密钥缓存清理间隔的频率。
# 每个间隔,达到 TTL 的解密数据加密密钥将从缓存中删除。
data_keys_cache_cleanup_interval = 1m

#################################### 快照 ###########################
[snapshots]
# 设置为 false 以删除快照功能
enabled = true

# 快照共享选项
external_enabled = true
external_snapshot_url = https://snapshots.raintank.io
external_snapshot_name = 发布到 snapshots.raintank.io

# 设置为 true 以启用此 Grafana 实例作为外部快照服务器并允许未经认证的请求
# 创建和删除快照。
public_mode = false

# 删除过期的快照
snapshot_remove_expired = true

#################################### 仪表板 ##################

[dashboards]
# 保留的每个仪表板的仪表板版本数量。默认:20,最小值:1
versions_to_keep = 20

# 最小仪表板刷新间隔。设置后,这将限制用户将仪表板的刷新间隔设置为低于给定间隔。默认情况下,这是 5 秒。
# 间隔字符串是一个可能带符号的十进制数字序列,后跟一个单位后缀(ms、s、m、h、d),例如 30s 或 1m。
min_refresh_interval = 5s

# 默认主页仪表板的路径。如果此值为空,则 Grafana 使用 StaticRootPath + "dashboards/home.json"
default_home_dashboard_path =

################################### 数据源 #########################
[datasources]
# Grafana 将返回的数据源上限。此限制是一个临时配置,当在列表数据源 API 上引入分页时将被弃用。
datasource_limit = 5000

# 并发执行的查询数量。仅适用于支持并发的数据源。
# 目前只有 Loki 和 InfluxDB(使用 influxql)支持并发功能标志。
# 检查数据源文档以启用并发。
concurrent_query_count = 10

################################### SQL 数据源 #####################
[sql_datasources]
# 连接到 SQL 数据源时,连接池中维护的默认最大打开连接数
max_open_conns_default = 100

# 连接到 SQL 数据源时,连接池中维护的默认最大空闲连接数
max_idle_conns_default = 100

# 连接到 SQL 数据源时使用的默认最大连接寿命。
max_conn_lifetime_default = 14400

#################################### 用户 ###############################
[users]
# 禁用用户注册/注册
allow_sign_up = false

# 允许非管理员用户创建组织
allow_org_create = false

# 设置为 true 以自动将新用户分配到默认组织(id 1)
auto_assign_org = true

# 将此值设置为自动将新用户添加到提供的组织(如果上面的 auto_assign_org 设置为 true)
auto_assign_org_id = 1

# 默认角色,新用户将自动分配
auto_assign_org_role = Viewer

# 在注册完成之前需要电子邮件验证
verify_email_enabled = false

# 登录后重定向到默认 OrgId
login_default_org_id =

# 登录页面用户字段的背景文字
login_hint =
password_hint =

# 默认 UI 主题("dark" 或 "light" 或 "system")
default_theme = dark

# 默认 UI 语言(支持的 IETF 语言标签,例如 en-US)
default_language = en-US

# 自定义主页的路径。仅在使用默认主页仪表板时将用户重定向到此路径。它应该匹配前端路由并包含前导斜杠。
home_page =

# 外部用户管理
external_manage_link_url =
external_manage_link_name =
external_manage_info =

# 查看者可以在浏览器中编辑/检查仪表板设置。但不能保存仪表板。
viewers_can_edit = false

# 编辑者可以管理他们创建的仪表板、文件夹和团队
editors_can_admin = false

# 用户邀请在过期前有效的时间。此设置应表示为持续时间。例如:6h(小时),2d(天),1w(周)。默认是 24h(24 小时)。支持的最短持续时间是 15m(15 分钟)。
user_invite_max_lifetime_duration = 24h

# 用于更新用户电子邮件地址的验证邮件在过期前有效的时间。此设置应表示为持续时间。例如:6h(小时),2d(天),1w(周)。默认是 1h(1 小时)。
verification_email_max_lifetime_duration = 1h

# 输入以逗号分隔的用户名列表,以在 Grafana UI 中隐藏它们。这些用户对 Grafana 管理员和他们自己可见。
hidden_users =

[secretscan]
# 启用 secretscan 功能
enabled = false

# 检查令牌泄漏的间隔
interval = 5m

# grafana 令牌泄漏检查服务的基本 URL
base_url = https://secret-scanning.grafana.net

# 检测到泄漏时发送传出的 webhooks 的 URL
oncall_url =

# 检测到泄漏时是否吊销令牌或仅发送通知
revoke = true

[service_accounts]
# 设置时,Grafana 将不允许创建超出此设置的令牌过期时间。
token_expiration_day_limit =

[auth]
# 登录 cookie 名称
login_cookie_name = grafana_session

# 禁用使用 Grafana 内置的登录解决方案。
disable_login = false

# 用户在下次访问前需要重新登录之前,经过身份验证的用户可以不活动的最大寿命(持续时间)。默认是 7 天(7d)。此设置应表示为持续时间,例如 5m(分钟),6h(小时),10d(天),2w(周),1M(月)。每次成功的令牌轮换(token_rotation_interval_minutes)时,寿命都会重置。
login_maximum_inactive_lifetime_duration =

# 用户登录后必须重新登录之前,经过身份验证的用户可以登录的最大寿命(持续时间)。默认是 30 天(30d)。此设置应表示为持续时间,例如 5m(分钟),6h(小时),10d(天),2w(周),1M(月)。
login_maximum_lifetime_duration =

# 活跃用户的身份验证令牌轮换频率。默认是每 10 分钟。
token_rotation_interval_minutes = 10

# 设置为 true 以禁用(隐藏)登录表单,如果您使用 OAuth
disable_login_form = false

# 设置为 true 以禁用侧边菜单中的注销链接。如果您使用 auth.proxy 或 auth.jwt,这很有用。
disable_signout_menu = false

# 注销后重定向用户的 URL
signout_redirect_url =

# 设置为 true 以自动尝试使用 OAuth 登录,跳过登录屏幕。
# 如果配置了多个 OAuth 提供者,则忽略此设置。
# 已弃用,请改用特定提供者的 auto_login 选项。
oauth_auto_login = false

# OAuth 状态最大年龄 cookie 持续时间,以秒为单位。默认是 600 秒。
oauth_state_cookie_max_age = 600

# api_key 在过期前的秒数限制
api_key_max_seconds_to_live = -1

# 设置为 true 以启用 HTTP 数据源的 SigV4 身份验证选项
sigv4_auth_enabled = false

# 设置为 true 以启用 SigV4 请求签名的详细日志记录
sigv4_verbose_logging = false

# 设置为 true 以启用 HTTP 数据源的 Azure 身份验证选项
azure_auth_enabled = false

# 除了 IdP 提供的唯一 ID 外,还使用电子邮件查找
oauth_allow_insecure_email_lookup = false

# 设置为 true 以在响应头中包含身份的 ID
id_response_header_enabled = false

# 响应头的前缀,X-Grafana-Identity-Id
id_response_header_prefix = X-Grafana

# 添加响应头的身份命名空间列表,空格分隔。
# 可用命名空间为 user, api-key 和 service-account。
# 头值将编码命名空间 ("user:<id>", "api-key:<id>", "service-account:<id>")
id_response_header_namespaces = user api-key service-account

#################################### 单点登录设置 ###########################
[sso_settings]
# 从数据库重新加载单点登录设置的时间间隔
# 适用于运行多个Grafana实例的高可用性设置
# 设置为0以禁用此功能
reload_interval = 1m

# 可以通过单点登录设置API和UI配置的提供程序列表。
configurable_providers = github gitlab google generic_oauth azuread okta

#################################### 匿名身份验证 ######################
[auth.anonymous]
# 启用匿名访问
enabled = false

# 为未认证用户指定的组织名称
org_name = Main Org.

# 为未认证用户指定的角色
org_role = Viewer

# 为未认证用户隐藏Grafana版本号
hide_version = false

# 设备总数
device_limit =

#################################### GitHub身份验证 #########################
[auth.github]
name = GitHub
icon = github
enabled = false
allow_sign_up = true
auto_login = false
client_id = some_id
client_secret =
scopes = user:email,read:org
auth_url = https://github.com/login/oauth/authorize
token_url = https://github.com/login/oauth/access_token
api_url = https://api.github.com/user
signout_redirect_url =
allowed_domains =
team_ids =
allowed_organizations =
role_attribute_path =
role_attribute_strict = false
org_mapping =
allow_assign_grafana_admin = false
skip_org_role_sync = false
tls_skip_verify_insecure = false
tls_client_cert =
tls_client_key =
tls_client_ca =
# GitHub OAuth应用不提供刷新令牌,访问令牌永不过期。
use_refresh_token = false

#################################### GitLab身份验证 #########################
[auth.gitlab]
name = GitLab
icon = gitlab
enabled = false
allow_sign_up = true
auto_login = false
client_id = some_id
client_secret =
scopes = openid email profile
auth_url = https://gitlab.com/oauth/authorize
token_url = https://gitlab.com/oauth/token
api_url = https://gitlab.com/api/v4
signout_redirect_url =
allowed_domains =
allowed_groups =
role_attribute_path =
role_attribute_strict = false
org_mapping =
allow_assign_grafana_admin = false
skip_org_role_sync = false
tls_skip_verify_insecure = false
tls_client_cert =
tls_client_key =
tls_client_ca =
use_pkce = true
use_refresh_token = true

#################################### Google身份验证 #########################
[auth.google]
name = Google
icon = google
enabled = false
allow_sign_up = true
auto_login = false
client_id = some_client_id
client_secret =
scopes = openid email profile
auth_url = https://accounts.google.com/o/oauth2/v2/auth
token_url = https://oauth2.googleapis.com/token
api_url = https://openidconnect.googleapis.com/v1/userinfo
signout_redirect_url =
allowed_domains =
validate_hd = true
hosted_domain =
allowed_groups =
role_attribute_path =
role_attribute_strict = false
org_mapping =
allow_assign_grafana_admin = false
skip_org_role_sync = true
tls_skip_verify_insecure = false
tls_client_cert =
tls_client_key =
tls_client_ca =
use_pkce = true
use_refresh_token = true

#################################### Grafana.com身份验证 ####################
# 旧的键名(以便它们在环境变量中有效)
[auth.grafananet]
enabled = false
allow_sign_up = true
client_id = some_id
client_secret =
scopes = user:email
allowed_organizations =
use_refresh_token = false

[auth.grafana_com]
name = Grafana.com
icon = grafana
enabled = false
allow_sign_up = true
auto_login = false
client_id = some_id
client_secret =
scopes = user:email
allowed_organizations =
skip_org_role_sync = false
use_refresh_token = false

#################################### Azure AD OAuth #######################
[auth.azuread]
name = Microsoft
icon = microsoft
enabled = false
allow_sign_up = true
auto_login = false
client_id = some_client_id
client_secret =
scopes = openid email profile
auth_url = https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize
token_url = https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token
signout_redirect_url =
allowed_domains =
allowed_groups =
allowed_organizations =
role_attribute_strict = false
org_mapping =
allow_assign_grafana_admin = false
force_use_graph_api = false
tls_skip_verify_insecure = false
tls_client_cert =
tls_client_key =
tls_client_ca =
use_pkce = true
skip_org_role_sync = false
use_refresh_token = true

#################################### Okta OAuth #######################
[auth.okta]
name = Okta
icon = okta
enabled = false
allow_sign_up = true
auto_login = false
client_id = some_id
client_secret =
scopes = openid profile email groups
auth_url = https://<tenant-id>.okta.com/oauth2/v1/authorize
token_url = https://<tenant-id>.okta.com/oauth2/v1/token
api_url = https://<tenant-id>.okta.com/oauth2/v1/userinfo
signout_redirect_url =
allowed_domains =
allowed_groups =
role_attribute_path =
role_attribute_strict = false
org_attribute_path =
org_mapping =
allow_assign_grafana_admin = false
skip_org_role_sync = false
tls_skip_verify_insecure = false
tls_client_cert =
tls_client_key =
tls_client_ca =
use_pkce = true
use_refresh_token = false

#################################### 通用OAuth #######################
[auth.generic_oauth]
name = OAuth
icon = signin
enabled = false
allow_sign_up = true
auto_login = false
client_id = some_id
client_secret =
scopes = user:email
empty_scopes = false
email_attribute_name = email:primary
email_attribute_path =
login_attribute_path =
name_attribute_path =
role_attribute_path =
role_attribute_strict = false
org_attribute_path =
org_mapping =
groups_attribute_path =
id_token_attribute_name =
team_ids_attribute_path =
auth_url =
token_url =
api_url =
signout_redirect_url =
teams_url =
allowed_domains =
allowed_groups =
team_ids =
allowed_organizations =
tls_skip_verify_insecure = false
tls_client_cert =
tls_client_key =
tls_client_ca =
use_pkce = false
auth_style =
allow_assign_grafana_admin = false
skip_org_role_sync = false
use_refresh_token = false

#################################### 基本身份验证 ##########################
[auth.basic]
enabled = true
# 此设置将为用户密码启用更强的密码策略,密码必须符合以下密码策略:
# 1. 至少12个字符
# 2. 至少包含1个大写字母
# 3. 至少包含1个小写字母
# 4. 至少包含1个数字字符
# 5. 至少包含1个符号字符
password_policy = false

#################################### 代理身份验证 ##########################
[auth.proxy]
enabled = false
header_name = X-WEBAUTH-USER
header_property = username
auto_sign_up = true
sync_ttl = 15
whitelist =
headers =
headers_encoded = false
enable_login_token = false

#################################### JWT身份验证 ##########################
[auth.jwt]
enabled = false
enable_login_token = false
header_name =
email_claim =
username_claim =
email_attribute_path =
username_attribute_path =
jwk_set_url =
jwk_set_file =
cache_ttl = 60m
expect_claims = {}
key_file =
key_id =
role_attribute_path =
role_attribute_strict = false
groups_attribute_path =
auto_sign_up = false
url_login = false
allow_assign_grafana_admin = false
skip_org_role_sync = false

#################################### LDAP身份验证 ###########################
[auth.ldap]
enabled = false
config_file = /etc/grafana/ldap.toml
allow_sign_up = true
skip_org_role_sync = false

# LDAP后台同步(仅限企业版)
# 每天凌晨1点
sync_cron = "0 1 * * *"
active_sync_enabled = true

#################################### AWS #####################################
[aws]
# 输入允许的AWS身份验证提供程序的逗号分隔列表。
# 选项有:default(AWS SDK默认),keys(访问和密钥),credentials(凭证字段),ec2_iam_role(EC2 IAM角色)
allowed_auth_providers = default,keys,credentials

# 允许AWS用户使用临时安全凭证来假设角色。
# 如果为true,将为指定的所有AWS身份验证提供aws_auth_providers
assume_role_enabled = true

# 指定 ListMetricPages API 返回的最大页数
list_metrics_page_limit = 500

# 实验性功能,仅供 Grafana Cloud 使用。请勿设置。
external_id =

# 设置假定角色的过期时间。
# 该设置应表示为一个持续时间。例如:6h(小时),10d(天),2w(周),1M(月)。
session_duration = "15m"

# 设置接收每个请求 AWS 设置的插件(通过插件上下文)
# 默认情况下,这将包括所有 Grafana Labs 拥有的 AWS 插件,或那些使用 AWS 设置的插件(ElasticSearch,Prometheus)。
forward_settings_to_plugins = cloudwatch, grafana-athena-datasource, grafana-redshift-datasource, grafana-x-ray-datasource, grafana-timestream-datasource, grafana-iot-sitewise-datasource, grafana-iot-twinmaker-app, grafana-opensearch-datasource, aws-datasource-provisioner, elasticsearch, prometheus

#################################### Azure ###############################
[azure]
# Grafana 托管的 Azure 云环境
# 可能的值为 AzureCloud、AzureChinaCloud、AzureUSGovernment 和 AzureGermanCloud
# 默认值为 AzureCloud(即公共云)
cloud = AzureCloud

# 自定义的 Azure 云设置和属性列表,当在非标准 azure 环境中运行数据源时需要此信息
# 指定时,此列表将替换 AzureCloud、AzureChinaCloud、AzureUSGovernment 和 AzureGermanCloud 的默认云列表
clouds_config =

# 指定 Grafana 是否托管在配置了托管身份的 Azure 服务中(例如 Azure 虚拟机实例)
# 如果启用,可以使用托管身份进行 Azure 服务的身份验证
# 默认情况下禁用,需要显式启用
managed_identity_enabled = false

# 用于用户分配的托管身份的客户端 ID
# 应设置为用户分配的身份,对于系统分配的身份应为空
managed_identity_client_id =

# 指定是否应在支持它的数据源中启用 Azure AD 工作负载身份验证
# 有关 Azure AD 工作负载身份验证的更多文档,请查看此文档:
# https://azure.github.io/azure-workload-identity/docs/
# 默认情况下禁用,需要显式启用
workload_identity_enabled = false

# Azure AD 工作负载身份验证的租户 ID
# 允许覆盖与 Kubernetes 服务帐户关联的 Azure AD 身份的默认租户 ID
workload_identity_tenant_id =

# Azure AD 工作负载身份验证的客户端 ID
# 允许覆盖与 Kubernetes 服务帐户关联的 Azure AD 身份的默认客户端 ID
workload_identity_client_id =

# Azure AD 工作负载身份验证的自定义令牌文件路径
# 允许设置自定义路径到投影的服务帐户令牌文件
workload_identity_token_file =

# 指定是否应在支持它的数据源中启用用户身份验证(代表当前登录的用户)(需要 AAD 身份验证)
# 默认情况下禁用,需要显式启用
user_identity_enabled = false

# 指定是否应在数据源中启用用户身份验证备用凭据
# 启用此选项允许数据源创建者提供备用凭据以进行后台发起的请求
# 例如:警报、记录的查询等。
# 默认情况下启用,需要显式禁用
# 如果上面的用户身份验证禁用,将没有任何效果
user_identity_fallback_credentials_enabled = true

# 覆盖 Azure Active Directory 的令牌 URL
# 默认与为 AAD 身份验证配置的令牌 URL 相同
user_identity_token_url =

# 覆盖将用于将用户令牌交换为数据源访问令牌的 ADD 应用程序 ID
# 默认情况下,与 AAD 身份验证中使用的相同,或者可以设置为另一个应用程序(用于 OBO 流程)
user_identity_client_id =

# 覆盖 AAD 应用程序客户端密钥
# 默认情况下,与 AAD 身份验证中使用的相同,或者可以设置为另一个应用程序(用于 OBO 流程)
user_identity_client_secret =

# 当 Grafana 位于身份验证代理后面时,允许使用自定义令牌请求断言
# 在大多数情况下,这不需要使用。启用此功能请将值设置为 "username"
# 默认值为空,任何其他值将不启用此功能
username_assertion =

# 设置将接收 Azure 设置的插件(通过插件上下文)
# 默认情况下,这将包括所有 Grafana Labs 拥有的 Azure 插件,或那些使用 Azure 设置的插件(Azure Monitor、Azure Data Explorer、Prometheus、MSSQL)。
forward_settings_to_plugins = grafana-azure-monitor-datasource, prometheus, grafana-azure-data-explorer-datasource, mssql

#################################### Role-based Access Control ###########
[rbac]
# 如果启用,将权限缓存到内存缓存中
permission_cache = true

# 启动时重置基本角色权限
# 警告:如果设置为 true,基本角色权限将在每次启动时重置
reset_basic_roles = false

# 在角色创建和更新时验证权限的操作和范围
permission_validation_enabled = true

#################################### SMTP / Emailing #####################
[smtp]
enabled = false
host = localhost:25
user =
# 如果密码包含 # 或 ; 则必须用三引号括起来。例如 """#password;"""
password =
cert_file =
key_file =
skip_verify = false
from_address = admin@grafana.localhost
from_name = Grafana
ehlo_identity =
startTLS_policy =
enable_tracing = false

[smtp.static_headers]
# 在所有发出的电子邮件中包含自定义静态头

[emails]
welcome_email_on_sign_up = false
templates_pattern = emails/*.html, emails/*.txt
content_types = text/html

#################################### Logging ##########################
[log]
# "console"、"file"、"syslog" 中的任意一种。默认是 console 和 file
# 使用空格分隔多个模式,例如 "console file"
mode = console file

# "debug"、"info"、"warn"、"error"、"critical" 中的任意一种,默认是 "info"
level = info

# 设置不同日志记录器的不同级别。例如 filters = sqlstore:debug
filters =

# 设置显示给用户的默认错误消息。此消息显示在应模糊处理的敏感后端错误的地方。
user_facing_default_error = "please inspect Grafana server log for details"

# 仅用于 "console" 模式
[log.console]
level =

# 日志行格式,有效选项为 text、console 和 json
format = console

# 仅用于 "file" 模式
[log.file]
level =

# 日志行格式,有效选项为 text、console 和 json
format = text

# 启用自动日志轮换(开关以下选项),默认是 true
log_rotate = true

# 单个文件的最大行数,默认是 1000000
max_lines = 1000000

# 单个文件的最大大小,默认是 28,表示 1 << 28,256MB
max_size_shift = 28

# 每日分段日志,默认是 true
daily_rotate = true

# 日志文件的过期天数(到期后删除),默认是 7
max_days = 7

[log.syslog]
level =

# 日志行格式,有效选项为 text、console 和 json
format = text
# Syslog 网络类型和地址。可以是 udp,tcp 或 unix。如果留空,则使用默认的 unix 终端点。
network =
address =

# Syslog 设施。user,daemon 和 local0 到 local7 是有效的。
facility =

# Syslog 标签。默认情况下,使用进程的 argv[0]。
tag =

[log.frontend]
# 是否初始化 Faro JavaScript 代理
enabled = false

# 自定义 HTTP 端点以发送事件。默认将事件记录到标准输出。
custom_endpoint =

# 对于 Grafana 后端日志摄取端点 (/log) 强制执行的每扩展时间段的每秒请求数限制。
log_endpoint_requests_per_second_limit = 3

# 对于 Grafana 后端日志摄取端点 (/log) 接受的最大请求数,每个短时间间隔。
log_endpoint_burst_limit = 15

# 是否启用错误仪表化,仅影响 Grafana JavaScript 代理
instrumentations_errors_enabled = true

# 是否启用控制台仪表化,仅影响 Grafana JavaScript 代理
instrumentations_console_enabled = false

# 是否启用 WebVitals 仪表化,仅影响 Grafana JavaScript 代理
instrumentations_webvitals_enabled = false

# 用于调试 Grafana JavaScript 代理的内部日志记录级别。
# 可能的值是:0 = 关闭,1 = 错误,2 = 警告,3 = 信息,4 = 详细
# 更多详情:https://github.com/grafana/faro-web-sdk/blob/v1.3.7/docs/sources/tutorials/quick-start-browser.md#how-to-activate-debugging
internal_logger_level = 0

# API 密钥,仅适用于 Grafana JavaScript 代理提供程序
api_key =

#################################### 使用配额 ########################
[quota]
enabled = false

#### 将配额设置为 -1 以取消限制。####
# 限制每个组织的用户数。
org_user = 10

# 限制每个组织的仪表板数。
org_dashboard = 100

# 限制每个组织的数据源数。
org_data_source = 10

# 限制每个组织的 API 密钥数。
org_api_key = 10

# 限制每个组织的警报数。
org_alert_rule = 100

# 限制用户可以创建的组织数。
user_org = 10

# 全局用户限制。
global_user = -1

# 全局组织限制。
global_org = -1

# 全局仪表板限制
global_dashboard = -1

# 全局 API 密钥限制
global_api_key = -1

# 登录用户数的全局限制。
global_session = -1

# 全局警报限制
global_alert_rule = -1

# 上传到 SQL 数据库的文件的全局限制
global_file = 1000

# 全局相关性限制
global_correlations = -1

# 每个规则组的警报规则数限制。
# 目前还没有严格执行此限制,但随着时间的推移将会执行。
alerting_rule_group_rules = 100

#################################### 统一告警 ####################
[unified_alerting]
# 启用告警子系统和界面。
enabled =

# 禁用统一告警的组织 ID 的逗号分隔列表。仅当启用统一告警时才受支持。
disabled_orgs =

# 指定轮询管理员配置更改的频率。
# interval 字符串是可能带有单位后缀(ms、s、m、h、d)的可能有符号的十进制数,例如 30s 或 1m。
admin_config_poll_interval = 60s

# 指定轮询 Alertmanager 配置更改的频率。
# interval 字符串是可能带有单位后缀(ms、s、m、h、d)的可能有符号的十进制数,例如 30s 或 1m。
alertmanager_config_poll_interval = 60s

# 在使用集群模式的 redis 时设置为 true。
ha_redis_cluster_mode_enabled = false

# 应该连接的 redis 服务器地址。
# 可以是单个地址,或者如果使用 redis 集群模式,则是集群配置地址或逗号分隔的地址列表。
ha_redis_address =

# 应该用于与 redis 服务器进行身份验证的用户名。
ha_redis_username =

# 应该用于与 redis 服务器进行身份验证的密码。
ha_redis_password =

# 默认情况下为 0 的 redis 数据库。
ha_redis_db =

# 用于在 redis 服务器上创建每个键或通道的前缀
# 作为 HA 的一部分用于警报。
ha_redis_prefix =

# 将用于与 redis 服务器通信的客户端上启用 TLS。如果使用其他 ha_redis_tls_* 字段,则应将其设置为 true。
ha_redis_tls_enabled = false

# 用于进行基本身份验证的 PEM 编码 TLS 客户端证书文件的路径。
# 如果使用 Mutual TLS,则需要。
ha_redis_tls_cert_path =

# PEM 编码 TLS 私钥文件的路径。还需要配置客户端证书。
# 如果使用 Mutual TLS,则需要。
ha_redis_tls_key_path =

# PEM 编码 CA 证书文件的路径。如果未设置,则使用主机的根 CA 证书。
ha_redis_tls_ca_path =

# 覆盖预期的 redis 服务器证书名称。
ha_redis_tls_server_name =

# 跳过验证 redis 服务器证书。
ha_redis_tls_insecure_skip_verify =

# 覆盖默认的 TLS 密码套件列表。
ha_redis_tls_cipher_suites =

# 覆盖默认的最小 TLS 版本。
# 允许的值:VersionTLS10、VersionTLS11、VersionTLS12、VersionTLS13
ha_redis_tls_min_version =

# 用于接收其他 Grafana 实例的统一警报消息的侦听地址/主机名和端口。端口用于 TCP 和 UDP。假设其他 Grafana 实例也在相同的端口上运行。
ha_listen_address = "0.0.0.0:9094"

# 明确的地址/主机名和端口,用于广告其他 Grafana 实例。端口用于 TCP 和 UDP。
ha_advertise_address = ""

# 初始实例列表(格式为主机:端口),这些实例将形成 HA 群集。配置此设置将启用警报的高可用性模式。
ha_peers = ""

# 等待实例通过 Alertmanager 发送通知的时间。在 HA 中,每个 Grafana 实例将被分配一个位置(例如 0、1)。然后,我们将此位置乘以超时,以指示每个实例在发送通知之前应等待多长时间,以考虑复制延迟。
# interval 字符串是可能带有单位后缀(ms、s、m、h、d)的可能有符号的十进制数,例如 30s 或 1m。
ha_peer_timeout = 15s

# 标签是一个可选的字符串,用于在每个数据包和流中包含。
# 它唯一标识集群,并在在具有多个集群的环境中发送流言消息时防止交叉通信问题。
ha_label =

# 发送流言消息之间的间隔。通过降低此值(更频繁),流言消息在集群中传播得更快,但会增加带宽使用。
# interval 字符串是可能带有单位后缀(ms、s、m、h、d)的可能有符号的十进制数,例如 30s 或 1m。
ha_gossip_interval = 200ms

# 完整状态同步之间的间隔。将此间隔设置得更低(更频繁)将增加跨较大集群的收敛速度,但会增加带宽使用。
# interval 字符串是可能带有单位后缀(ms、s、m、h、d)的可能有符号的十进制数,例如 30s 或 1m。
ha_push_pull_interval = 60s

# 启用或禁用告警规则执行。告警 UI 仍然可见。
execute_alerts = true

# 从数据源获取数据时的告警评估超时。
# 超时字符串是可能带有单位后缀(ms、s、m、h、d)的可能有符号的十进制数,例如 30s 或 1m。
evaluation_timeout = 30s

# 在放弃对该评估的尝试之前,我们将尝试评估警报规则的次数。默认值为 1。
max_attempts = 1

# 强制规则评估之间的最小间隔。如果小于此值或者不是调度器间隔(10s)的倍数,则将调整规则。较高的值可以帮助资源管理,因为我们会随着时间的推移安排更少的评估。
# interval 字符串是可能带有单位后缀(ms、s、m、h、d)的可能有符号的十进制数,例如 30s 或 1m。
min_interval = 10s

# 这是一个实验性选项,可将并行性添加到保存警报状态到数据库中。
# 它配置每个评估规则的最大并发查询数。默认值为 1
# (禁用每个规则的并发查询)。
max_state_save_concurrency = 1

# 如果启用了功能标志 'alertingSaveStatePeriodic',则用于将警报实例持久化到数据库的间隔。
# interval 字符串是可能带有单位后缀(ms、s、m、h、d)的可能有符号的十进制数,例如 30s 或 1m。
state_periodic_save_interval = 5m

# 禁用在其评估窗口中平滑警报评估的功能。
# 规则将同步评估。
disable_jitter = false

# 警报管理器通知日志条目的保留期。
notification_log_retention = 5d

[unified_alerting.screenshots]
# 在通知中启用截图。您必须安装 Grafana 图像渲染插件,或者设置 Grafana 使用远程渲染服务。
# 有关配置选项的详细信息,请参阅 [rendering]。
capture = false

# 捕获截图的超时。如果在超时内无法捕获截图,则发送通知而不包含截图。最长持续时间为 30 秒。此超时应小于所有评估组的最小间隔,以避免对警报规则评估施加背压。
capture_timeout = 10s

# 同时可以拍摄的最大截图数。此选项与 concurrent_render_request_limit 不同,因为 max_concurrent_screenshots 设置为可以同时拍摄的所有触发警报的并发截图数,而 concurrent_render_request_limit 设置为所有 Grafana 服务的总并发截图数。
max_concurrent_screenshots = 5

# 将截图上传到本地 Grafana 服务器或 Azure、S3 和 GCS 等远程存储。请参阅 [external_image_storage] 以获取更多配置选项。如果此选项为 false,则截图将保存到磁盘,最多保留 temp_data_lifetime。
upload_external_image_storage = false

[unified_alerting.reserved_labels]
# 禁用由 Grafana 告警引擎添加的保留标签的逗号分隔列表。
# 例如:“disabled_labels=grafana_folder”
disabled_labels =

[unified_alerting.state_history]
# 启用统一告警中的状态历史功能。警报规则的先前状态将在面板和 UI 中可见。
enabled = true

# 选择要使用的可插拔状态历史后端。可以是 "annotations"、"loki" 或 "multiple"
# "loki" 将状态历史写入外部 Loki 实例。"multiple" 允许将历史写入多个后端。
# 默认为 "annotations"。
backend =

# 仅适用于 "multiple"。
# 指示用于提供状态历史查询的主要后端。
# 可以是 "annotations" 或 "loki"
primary =

# 仅适用于 "multiple"。
# 附加后端的逗号分隔列表,用于写入状态历史数据。
secondaries =

# 仅适用于 "loki"。
# 外部 Loki 实例的 URL。
# 对于 "loki" 后端,必须设置 "loki_remote_url" 或 "loki_remote_read_url" 和 "loki_remote_write_url" 中的一个。
loki_remote_url =

# 仅适用于 "loki"。
# 外部 Loki 的读取路径的 URL。在 Loki 具有分离的读取和写入 URL 的配置中使用。
# 对于 "loki" 后端,必须设置 "loki_remote_url" 或 "loki_remote_read_url" 和 "loki_remote_write_url" 中的一个。
loki_remote_read_url =

# 仅适用于 "loki"。
# 外部 Loki 的写入路径的 URL。在 Loki 具有分离的读取和写入 URL 的配置中使用。
# 对于 "loki" 后端,必须设置 "loki_remote_url" 或 "loki_remote_read_url" 和 "loki_remote_write_url" 中的一个。
loki_remote_write_url =

# 仅适用于 "loki"。
# 附加到发送到 Loki 的请求的可选租户 ID。
loki_tenant_id =

# 仅适用于 "loki"。
# 用于向 Loki 发送请求进行基本身份验证的可选用户名。可以留空以禁用基本身份验证。
loki_basic_auth_username =

# 仅适用于 "loki"。
# 用于向 Loki 发送请求进行基本身份验证的可选密码。可以留空。
loki_basic_auth_password =

# 仅适用于 "loki"。
# 用于发送到 Loki 的查询的可选最大查询长度。默认值为 721h,与默认 Loki 值匹配。
loki_max_query_length = 721h

[unified_alerting.state_history.external_labels]
# 附加到出站状态历史记录或日志流的可选额外标签。
# 可以提供任意数量的标签键值对。
#
# 例如。
# mylabelkey = mylabelvalue

[unified_alerting.state_history.annotations]
# 控制在评估警报规则时自动创建的注释的保留。
# 必须配置警报状态历史后端为注释(参见设置 [unified_alerting.state_history]。backend)。

# 配置警报注释存储的持续时间。默认为 0,将其保留永远。
# 此设置应表示为持续时间。例如 6h(小时)、10d(天)、2w(周)、1M(月)。
max_age =

# 配置 Grafana 存储的警报注释的最大数量。默认值为 0,保留所有警报注释。
max_annotations_to_keep =

# 注意:尚未使用此配置选项。
[remote.alertmanager]

# 启用配置的远程 Alertmanager 的使用并禁用内部 Alertmanager。
# 默认值为 `false`。
enabled = false

# 将取代内部 Alertmanager 的远程 Alertmanager 的 URL。
# 此 URL 应为根路径,Grafana 将自动为某些 HTTP 调用附加一个 "/alertmanager" 后缀。
# 如果 `enabled` 设置为 `true`,则为必需。
url =

# 在请求到 Alertmanager 时使用的租户 ID。
# 如果配置了密码,则也将用于基本身份验证用户名。
tenant =

# 基本身份验证的可选密码。
# 如果不存在,则租户 ID 将设置在 X-Scope-OrgID 标头中。
password =

sync_interval = 5m

#################################### 注释 #########################
[annotations]
# 配置注释清理作业的批处理大小。此设置用于仪表板、API 和警报注释。
cleanupjob_batchsize = 100

# 强制新引入的注释标签的最大允许长度。可以介于 500 和 4096 之间(相应的列长度)。默认值为 500。
# 将其设置为更高的值会影响性能,因此不建议这样做。
tags_length = 500

[annotations.dashboard]
# 仪表板注释意味着注释与它们创建的仪表板相关联。

# 配置仪表板注释的存储时间。默认为 0,表示永久保留。
# 此设置应表示为持续时间。示例:6h(小时),10d(天),2w(周),1M(月)。
max_age =

# 配置 Grafana 存储的最大仪表板注释数。默认值为 0,表示保留所有仪表板注释。
max_annotations_to_keep =

[annotations.api]
# API 注释意味着注释是使用 API 创建的,而没有与仪表板关联。

# 配置 Grafana 存储 API 注释的时间。默认为 0,表示永久保留。
# 此设置应表示为持续时间。示例:6h(小时),10d(天),2w(周),1M(月)。
max_age =

# 配置 Grafana 保留的最大 API 注释数。默认值为 0,表示保留所有 API 注释。
max_annotations_to_keep =

#################################### 探索 #############################
[explore]
# 启用探索部分
enabled = true

#################################### 帮助 #############################
[help]
# 启用帮助部分
enabled = true

#################################### 档案 #############################
[profile]
# 启用档案部分
enabled = true

#################################### 新闻 #############################
[news]
# 启用新闻订阅部分
news_feed_enabled = true

#################################### 查询 #############################
[query]
# 设置可以在混合查询中并发执行的数据源查询数量。默认值为 CPU 数。
concurrent_query_limit =

#################################### 查询历史 #############################
[query_history]
# 启用查询历史
enabled = true

#################################### 短链接 #############################
[short_links]
# 从未访问的短链接将被删除。时间以天为单位。默认为 7 天。最大为 365。0 表示它们将每隔约 10 分钟删除一次。
expire_time = 7

#################################### 内部 Grafana 指标 ############
# 可在 HTTP URL /metrics 和 /metrics/plugins/:pluginId 获取到的指标
[metrics]
enabled = true
interval_seconds = 10
# 禁用生成总体统计(stat_totals_*)指标
disable_total_stats = false
# 总体统计收集器将更新统计信息的间隔。默认为 1800 秒。
total_stats_collector_interval_seconds = 1800

# 如果两者都设置,则需要对指标端点进行基本身份验证。
basic_auth_username =
basic_auth_password =

# 指标环境信息将维度添加到 `grafana_environment_info` 指标中,该指标可以公开有关 Grafana 实例的更多信息。
[metrics.environment_info]
#exampleLabel1 = exampleValue1
#exampleLabel2 = exampleValue2

# 将内部 Grafana 指标发送到 graphite
[metrics.graphite]
# 通过设置地址设置启用(例如 localhost:2003)
address =
prefix = prod.grafana.%(instance_name)s.

#################################### Grafana.com 集成  ##########################
[grafana_net]
url = https://grafana.com

[grafana_com]
url = https://grafana.com
api_url = https://grafana.com/api
sso_api_token = ""

#################################### 分布式追踪 ############
# Opentracing 已弃用,请改用 opentelemetry
[tracing.jaeger]
# jaeger 目标地址(例如 localhost:6831)
address =
# 创建新跨度时将始终包含的标记。例如(tag1:value1,tag2:value2)
always_included_tag =
# 类型指定采样器的类型:const、probabilistic、rateLimiting 或 remote
sampler_type = const
# jaeger 采样器配置参数
# 对于“const”采样器,始终为 false/true 的 0 或 1
# 对于“probabilistic”采样器,介于 0 和 1 之间的概率
# 对于“rateLimiting”采样器,每秒的跨度数
# 对于“remote”采样器,参数与“probabilistic”相同,表示实际采样率之前的初始采样率
sampler_param = 1
# 是否使用 Zipkin 跨度传播(x-b3- HTTP 头)。
zipkin_propagation = false
# 将此设置为 true 会禁用共享的 RPC 跨度。
# 在基础架构中的其他地方使用 Zipkin 时,不禁用是最常见的设置。
disable_shared_zipkin_spans = false

[tracing.opentelemetry]

# 创建新跨度时始终包含的属性。例如(key1:value1,key2:value2)
custom_attributes =
# 类型指定采样器的类型:const、probabilistic、rateLimiting 或 remote
sampler_type =
# 采样器配置参数
# 对于“const”采样器,始终为 false/true 的 0 或 1
# 对于“probabilistic”采样器,介于 0.0 和 1.0 之间的概率
# 对于“rateLimiting”采样器,每秒的跨度数
# 对于“remote”采样器,参数与“probabilistic”相同,并表示从采样服务器(设置为 sampling_server_url)接收实际采样率之前的初始采样率
sampler_param =
# 当 sampler_type 为 remote 时指定采样服务器的 URL
sampling_server_url =

[tracing.opentelemetry.jaeger]
# jaeger 目标地址(例如 http://localhost:14268/api/traces)
address =
# 传播指定文本映射传播格式:w3c、jaeger
propagation =

# 这是一个配置 OTLP 导出器的配置,使用 GRPC 协议
[tracing.opentelemetry.otlp]
# otlp 目标地址(例如 localhost:4317)
address =
# 传播指定文本映射传播格式:w3c、jaeger
propagation =

#################################### 外部图像存储 ##############
[external_image_storage]
# 用于将图像上传到公共服务器,以便它们可以包含在 Slack/电子邮件消息中。
# 您可以在(s3、webdav、gcs、azure_blob、local)之间进行选择。
provider =

[external_image_storage.s3]
endpoint =
path_style_access =
bucket_url =
bucket =
region =
path =
access_key =
secret_key =

[external_image_storage.webdav]
url =
username =
password =
public_url =

[external_image_storage.gcs]
key_file =
bucket =
path =
enable_signed_urls = false
signed_url_expiration =

[external_image_storage.azure_blob]
account_name =
account_key =
container_name =
sas_token_expiration_days =

[external_image_storage.local]
# 不需要任何配置

[rendering]
# 配置远程 HTTP 图像渲染服务的选项,例如使用 https://github.com/grafana/grafana-image-renderer。
# 远程 HTTP 图像渲染服务的 URL,例如 http://localhost:8081/render,将使 Grafana 可以使用对外部服务的 HTTP 请求渲染面板和仪表板为 PNG 图像。
server_url =
# 如果远程 HTTP 图像渲染服务在与 Grafana 服务器不同的服务器上运行,则可能需要将其配置为可以访问 Grafana 的 URL,例如 http://grafana.domain/。
callback_url =
# 将发送到并由渲染器验证的身份验证令牌。渲染器将拒绝任何没有与其配置的身份验证令牌匹配的请求。
renderer_token = -
# 并发渲染请求限制会影响 /render HTTP 端点的使用。同时渲染许多图像可能会过载服务器,
# 这个设置可以通过仅允许一定数量的并发请求来帮助保护服务器。
concurrent_render_request_limit = 30
# 确定用于访问和渲染 Grafana 的渲染器的渲染密钥的生命周期。
# 此设置应表示为持续时间。示例:10s(秒),5m(分钟),2h(小时)。
# 默认值为 5m。对于大多数部署来说,这应该是足够的时间。
# 仅在图像渲染失败且您在 Grafana 日志中看到“无法从缓存中获取渲染密钥”时才更改该值。
render_key_lifetime = 5m
# 面板截图的默认宽度
default_image_width = 1000
# 面板截图的默认高度
default_image_height = 500
# 面板截图的默认比例
default_image_scale = 1

[panels]
# 为了支持旧的环境变量,这里是 false
enable_alpha = false
disable_sanitize_html = false

[plugins]
enable_alpha = false
app_tls_skip_verify_insecure = false
# 输入插件标识符的逗号分隔列表,以标识即使它们未签名也要加载的插件。已修改签名的插件永远不会加载。
allow_loading_unsigned_plugins =
# 启用或禁用直接从 Grafana 中安装/卸载/更新插件。
plugin_admin_enabled = true
plugin_admin_external_manage_enabled = false
plugin_catalog_url = https://grafana.com/grafana/plugins/
# 输入一个逗号分隔的插件标识符列表,以在插件目录中隐藏它们。
plugin_catalog_hidden_plugins =
# 记录所有核心和外部插件的后端请求。
log_backend_requests = false
# 禁用公钥下载以验证插件签名。
public_key_retrieval_disabled = false
# 强制在启动时下载验证插件签名的公钥。如果禁用,则公钥将每 10 天检索一次。
# 需要 public_key_retrieval_disabled 为 false 才能生效。
public_key_retrieval_on_startup = false
# 输入一个逗号分隔的插件标识符列表,以避免加载(包括核心插件)。这些插件将在目录中隐藏。
disable_plugins =
# 管理实例中插件安装和卸载的身份验证令牌
install_token =
# 一个逗号分隔的插件标识符列表,其中应禁用 Angular 废弃 UI。
hide_angular_deprecation =
# 一个逗号分隔的插件标识符列表,其中应转发环境变量。仅在启用功能标志 pluginsSkipHostEnvVars 时使用。
forward_host_env_vars =

#################################### Grafana Live ##########################################
[live]
# 每个 Grafana 服务器实例的 Grafana Live WebSocket 端点的最大连接数。请参阅 Grafana Live 文档
# 如果您计划将其设置为高于默认值 100,因为这可能需要一些 OS 和基础设施调整。0 禁用 Live,-1 表示无限连接。
max_connections = 100

# allowed_origins 是一个以逗号分隔的允许与 Grafana Live 建立连接的来源列表。
# 如果未设置,则 origin 将在 root_url 上进行匹配。支持通配符符号“*”。
allowed_origins =


# engine 定义用于 Grafana Live 的高可用引擎。默认情况下不使用任何引擎 - 在这种情况下,Live 功能仅在单个 Grafana 服务器上工作。
# 可用选项:"redis"。
# 设置 ha_engine 是一个实验性功能。
ha_engine =

# ha_engine_address 设置 Live HA 引擎的连接地址。根据引擎类型,地址格式可能不同。
# 目前我们仅支持 "host:port" 格式的 Redis 连接地址。
# 此选项是实验性的。
ha_engine_address = "127.0.0.1:6379"

# ha_engine_password 允许设置可选密码以用于引擎身份验证
ha_engine_password = ""

#################################### Grafana 图像渲染插件 ##########################
[plugin.grafana-image-renderer]
# 当 Grafana 未提供时,指示无头浏览器实例使用默认时区,例如在呈现警报的面板图像时。
# 请参阅 ICU 的 metaZones.txt (https://cs.chromium.org/chromium/src/third_party/icu/source/data/misc/metaZones.txt) 获取受支持的时区 ID 列表。
# 如果未设置,将回退到 TZ 环境变量。
rendering_timezone =

# 当 Grafana 未提供时,指示无头浏览器实例使用默认语言,例如在呈现警报的面板图像时。
# 请参阅 HTTP 标头 Accept-Language 以了解如何格式化此值,例如 'fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5'。
rendering_language =

# 当 Grafana 未提供时,指示无头浏览器实例使用默认设备比例因子,例如在呈现警报的面板图像时。
# 默认为 1。使用较高的值将生成更详细的图像(更高的 DPI),但将需要更多的磁盘空间来存储图像。
rendering_viewport_device_scale_factor =

# 指示无头浏览器实例在导航期间是否忽略 HTTPS 错误。默认情况下不会忽略 HTTPS 错误。由于安全风险,不建议忽略 HTTPS 错误。
rendering_ignore_https_errors =

# 指示无头浏览器实例在呈现图像时是否捕获和记录详细信息。默认为 false,仅捕获和记录错误消息。启用时,还将捕获和记录调试消息。
# 要在 Grafana 服务器日志中包含详细信息,必须将渲染日志级别调整为 debug,请配置 [log].filter = rendering:debug。
rendering_verbose_logging =

# 指示无头浏览器实例是否将其调试和错误消息输出到远程呈现服务的运行进程中。
# 默认值为 false。在故障排除时启用(true)可能很有用。
rendering_dumpio =

# 指示无头浏览器实例是否为每个呈现步骤的持续时间注册度量标准。默认值为 false。
# 在优化呈现模式设置以改进插件性能或进行故障排除时启用(true)可能很有用。
rendering_timing_metrics =

# 传递给无头浏览器实例的其他参数。默认为 --no-sandbox。Chromium 标志的列表可以在这里找到(https://peter.sh/experiments/chromium-command-line-switches/)。多个参数用逗号分隔。
rendering_args =

# 您可以配置插件使用与预打包版本的 Chromium 不同的浏览器二进制文件。
# 请注意,这不是推荐的做法,因为如果安装的 Chrome/Chromium 版本与插件不兼容,则可能会遇到问题。
rendering_chrome_bin =

# 指示如何创建无头浏览器实例。默认为 'default',并将在每个请求上创建一个新的浏览器实例。
# 'clustered' 模式将确保最多可以同时执行最大数量的浏览器/隐身页面。
# 'reusable' 模式将有一个浏览器实例,并将在每个请求上创建一个新的隐身页面。
rendering_mode =

# 当 rendering_mode = clustered 时,可以指示同时执行多少个浏览器或隐身页面。默认为 'browser',并将使用浏览器实例进行集群。
# 'context' 模式将使用隐身页面进行集群。
rendering_clustering_mode =
# 当 rendering_mode = clustered 时,可以定义渲染请求在超时之前可以花费的时间。默认为 `30` 秒。
rendering_clustering_timeout =

# 限制可以请求的最大视口宽度、高度和设备比例因子。
rendering_viewport_max_width =
rendering_viewport_max_height =
rendering_viewport_max_device_scale_factor =

# 更改 gRPC 服务器的侦听主机和端口。默认主机是 127.0.0.1,默认端口是 0,将自动分配一个未使用的端口。
grpc_host =
grpc_port =

[enterprise]
license_path =

[feature_toggles]
# 在 `grafana.ini` 中启用功能切换有两种方式。
# 您可以将要启用的功能数组传递给 `enable` 字段,或者
# 通过将开关的名称设置为 true/false 来配置每个开关。设置为 true/false 的开关将覆盖 `enable` 列表中的开关。

# enable = feature1,feature2
enable =
# 一些功能默认启用,请参阅:
# https://grafana.com/docs/grafana/next/setup-grafana/configure-grafana/feature-toggles/
# 要默认启用功能,请在以下位置设置 `Expression:  "true"`:
# https://github.com/grafana/grafana/blob/main/pkg/services/featuremgmt/registry.go

# 功能1 = true
# 功能2 = false

[date_formats]
# 有关支持的格式化模式的信息,请参阅 https://momentjs.com/docs/#/displaying/

# 用于在时间范围选择器和其他显示完整时间的地方使用的默认系统日期格式
full_date = YYYY-MM-DD HH:mm:ss

# 仅在我们仅显示小间隔的图表和其他地方使用
interval_second = HH:mm:ss
interval_minute = HH:mm
interval_hour = MM/DD HH:mm
interval_day = MM/DD
interval_month = YYYY-MM
interval_year = YYYY

# 实验性功能
use_browser_locale = false

# 用户首选项的默认时区。选项为 'browser' 表示浏览器本地时区,或来自 IANA 时区数据库的时区名称,例如 'UTC' 或 'Europe/Amsterdam' 等。
default_timezone = browser

[expressions]
# 启用或禁用表达式功能。
enabled = true

[geomap]
# 设置默认底图的 JSON 配置
default_baselayer_config =

# 启用或禁用加载其他底图图层
enable_custom_baselayers = true

#################################### 支持捆绑包 #####################################
[support_bundles]
# 启用支持捆绑包创建(默认:true)
enabled = true
# 只有服务器管理员才能生成和查看支持捆绑包(默认:true)
server_admin_only = true
# 如果设置,捆绑包将使用提供的公钥进行加密,公钥之间用空格分隔
public_keys = ""

#################################### 存储 ###############################################

[storage]
# 允许上传未经过清理的 SVG 文件。
allow_unsanitized_svg_upload = false

#################################### 搜索 ###############################################

[search]
# 定义在完整重新索引期间一次批量加载的仪表板数量。
# 这是一个临时设置,可能会在将来被删除。
dashboard_loading_batch_size = 200

# 定义完整搜索重新索引的频率。
# 这是一个临时设置,可能会在将来被删除。
full_reindex_interval = 5m

# 定义基于最近更改(例如仪表板更新)的部分索引更新的频率。
# 这是一个临时设置,可能会在将来被删除。
index_update_interval = 10s

# 将由其 ID 引用的应用程序插件(包括其所有页面)移动到特定的导航部分
# 格式:<Plugin ID> = <Section ID> <Sort Weight>
[navigation.app_sections]

# 将特定的应用程序插件页面(由其 `path` 字段引用)移动到特定的导航部分
# 格式:<Page URL> = <Section ID> <Sort Weight>
[navigation.app_standalone_pages]

#################################### 安全 Socks5 数据源代理 #####################################
[secure_socks_datasource_proxy]
enabled = false
root_ca_cert =
client_key =
client_cert =
server_name =
# 数据源应连接到的 socks5 代理的地址
proxy_address =
# 确定是否在数据源页面显示安全的 socks 代理,默认为 true 如果启用了该功能
show_ui = true
# 在安全的 socks 代理中禁用 TLS
allow_insecure = false

################################## 功能管理 ##############################################
# 配置试验性功能切换管理页面功能的选项,该功能在 `featureToggleAdminPage` 功能切换后面。使用时请自行承担风险。
[feature_management]
# 允许在功能管理页面编辑功能切换
allow_editing = false

# 允许自定义管理功能切换的控制器的 URL
update_webhook =

# 允许为功能管理更新请求配置身份验证令牌
update_webhook_token =

# 从功能管理页面隐藏特定的功能切换
hidden_toggles =

# 禁用功能管理页面中特定功能切换的更新
read_only_toggles =

#################################### 公共仪表板 #####################################
[public_dashboards]
# 将其设置为 false 以禁用公共仪表板
enabled = true

###################################### 云迁移 ######################################
[cloud_migration]
# 设置为 true 以启用目标端迁移 UI
is_target = false
# 用于向 grafana com 发送请求的令牌
gcom_api_token = ""
# 等待请求获取实例完成的时间
fetch_instance_timeout = 5s
# 等待请求创建访问策略完成的时间
create_access_policy_timeout = 5s
# 等待请求创建获取访问策略完成的时间
fetch_access_policy_timeout = 5s
# 等待请求创建删除访问策略完成的时间
delete_access_policy_timeout = 5s
# 用于访问 cms 的域名
domain = grafana-dev.net

F.3.2 使用环境变量覆盖配置

这部分来源于官方文档,提供了一个Docker使用环境变量来覆盖配置文件ini的方法。地址:
https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/

不要使用环境变量来 添加 新的配置设置。相反,使用环境变量来 覆盖 现有选项。

要覆盖选项:

GF_<SectionName>_<KeyName>

其中,部分名称是方括号内的文本。所有内容都应大写,.- 应替换为 _。例如,如果您有以下配置设置:

# 默认部分
instance_name = ${HOSTNAME}

[security]
admin_user = admin

[auth.google]
client_secret = 0ldS3cretKey

[plugin.grafana-image-renderer]
rendering_ignore_https_errors = true

[feature_toggles]
enable = newNavigation

您可以在 Linux 机器上使用以下命令覆盖变量:

export GF_DEFAULT_INSTANCE_NAME=my-instance
export GF_SECURITY_ADMIN_USER=owner
export GF_AUTH_GOOGLE_CLIENT_SECRET=newS3cretKey
export GF_PLUGIN_GRAFANA_IMAGE_RENDERER_RENDERING_IGNORE_HTTPS_ERRORS=true
export GF_FEATURE_TOGGLES_ENABLE=newNavigation

F.3.3 参考Docker环境变量

参考此ini文件,毕竟这些数据都是可配置的,Grafana对应可能有以下环境变量(仅做参考不确定是否都有),感兴趣试试:

环境变量功能描述
GF_AUTH_GOOGLE_CLIENT_SECRET用于配置Google OAuth的客户端密钥
GF_DEFAULT_INSTANCE_NAME设置Grafana实例的默认名称
GF_PATHS_CONFIG设置Grafana配置文件的路径,默认为/etc/grafana/grafana.ini
GF_PATHS_DATA设置Grafana数据目录的路径,默认为/var/lib/grafana
GF_PATHS_HOME设置Grafana安装目录的路径,默认为/usr/share/grafana
GF_PATHS_LOGS设置Grafana日志目录的路径,默认为/var/log/grafana
GF_PATHS_PLUGINS设置Grafana插件目录的路径,默认为/var/lib/grafana/plugins
GF_PLUGIN_GRAFANA_IMAGE_RENDERER_RENDERING_IGNORE_HTTPS_ERRORS用于配置Grafana Image Renderer插件,忽略HTTPS错误
GF_PATHS_PROVISIONING设置Grafana预配置目录的路径,默认为/etc/grafana/provisioning
GF_INSTALL_PLUGINS在启动时安装指定的Grafana插件,多个插件用逗号分隔
GF_INSTALL_IMAGE_RENDERER_PLUGIN在启动时安装Grafana Image Renderer插件
GF_SECURITY_ADMIN_USER设置Grafana管理员用户名
GF_SECURITY_ADMIN_PASSWORD设置Grafana管理员密码
GF_SECURITY_ADMIN_PASSWORDFILE从文件中读取Grafana管理员密码
GF_SECURITY_SECRET_KEY设置Grafana的密钥,用于签名
GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION禁用初始管理员用户的创建
GF_USERS_ALLOW_SIGN_UP允许用户自行注册
GF_USERS_ALLOW_ORG_CREATE允许用户创建组织
GF_USERS_AUTO_ASSIGN_ORG自动将用户添加到默认组织
GF_USERS_AUTO_ASSIGN_ORG_ROLE自动分配用户在组织中的角色
GF_AUTH_ANONYMOUS_ENABLED启用匿名访问
GF_AUTH_ANONYMOUS_ORG_NAME设置匿名用户所属的组织名称
GF_AUTH_ANONYMOUS_ORG_ROLE设置匿名用户在组织中的角色
GF_AUTH_BASIC_ENABLED启用基本认证
GF_AUTH_LDAP_ENABLED启用LDAP认证
GF_AUTH_LDAP_CONFIG_FILE设置LDAP配置文件的路径
GF_ANALYTICS_REPORTING_ENABLED启用使用情况报告
GF_ANALYTICS_CHECK_FOR_UPDATES启用版本更新检查
GF_DASHBOARDS_JSON_ENABLED启用仪表板的JSON导入导出
GF_DASHBOARDS_JSON_PATH设置仪表板JSON文件的路径
GF_SMTP_ENABLED启用SMTP服务
GF_SMTP_HOST设置SMTP服务器主机
GF_SMTP_USER设置SMTP服务器用户名
GF_SMTP_PASSWORD设置SMTP服务器密码
GF_SMTP_FROM_ADDRESS设置SMTP发件人地址
GF_SMTP_FROM_NAME设置SMTP发件人名称
GF_LOG_MODE设置日志模式,可选值为console, file, syslog
GF_LOG_LEVEL设置日志级别,可选值为debug, info, warn, error, critical
GF_LOG_FILTERS设置日志过滤器
GF_METRICS_ENABLED启用Grafana指标收集
GF_METRICS_BASIC_AUTH_USERNAME设置指标端点的基本认证用户名
GF_METRICS_BASIC_AUTH_PASSWORD设置指标端点的基本认证密码
GF_METRICS_INTERVAL_SECONDS设置指标收集的间隔时间(秒)
GF_SNAPSHOTS_EXTERNAL_ENABLED启用外部快照功能
GF_SNAPSHOTS_EXTERNAL_SNAPSHOT_URL设置外部快照的URL
GF_SNAPSHOTS_EXTERNAL_SNAPSHOT_NAME设置外部快照的名称
GF_EXTERNAL_IMAGE_STORAGE_PROVIDER设置外部图像存储提供商
GF_EXTERNAL_IMAGE_STORAGE_S3_BUCKET设置S3图像存储的存储桶名称
GF_EXTERNAL_IMAGE_STORAGE_S3_REGION设置S3图像存储的区域
GF_EXTERNAL_IMAGE_STORAGE_S3_PATH设置S3图像存储的路径前缀
GF_EXTERNAL_IMAGE_STORAGE_S3_ACCESS_KEY设置S3图像存储的访问密钥
GF_EXTERNAL_IMAGE_STORAGE_S3_SECRET_KEY设置S3图像存储的密钥
GF_PANELS_DISABLE_SANITIZE_HTML禁用面板中HTML的净化
GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS允许加载未签名的插件
GF_PLUGINS_ENABLE_ALPHA启用alpha版本的插件
GF_DATAPROXY_TIMEOUT设置数据代理的超时时间
GF_DATAPROXY_SEND_USER_HEADER在数据代理请求中发送用户头信息
GF_SERVER_ENABLE_GZIP启用Gzip压缩
GF_SERVER_CERT_FILE设置服务器证书文件路径
GF_SERVER_CERT_KEY设置服务器证书密钥文件路径
GF_DATABASE_TYPE设置数据库类型,可选值为mysql, postgres, sqlite3
GF_DATABASE_HOST设置数据库主机
GF_DATABASE_NAME设置数据库名称
GF_DATABASE_USER设置数据库用户名
GF_DATABASE_PASSWORD设置数据库密码
GF_DATABASE_SSL_MODE设置数据库SSL模式
GF_DATABASE_MAX_OPEN_CONN设置数据库最大打开连接数
GF_DATABASE_MAX_IDLE_CONN设置数据库最大空闲连接数
GF_DATABASE_CONN_MAX_LIFETIME设置数据库连接的最大生命周期
GF_SESSION_PROVIDER设置会话提供商,可选值为file, mysql, postgres, memcache, redis
GF_SESSION_PROVIDER_CONFIG设置会话提供商的配置
GF_SESSION_COOKIE_NAME设置会话cookie的名称
GF_SESSION_COOKIE_SECURE启用安全的会话cookie
GF_SESSION_COOKIE_SAMESITE设置会话cookie的SameSite属性
GF_LOG_CONSOLE_FORMAT设置控制台日志格式,可选值为console, json, text
GF_LOG_CONSOLE_LEVEL设置控制台日志级别
GF_LOG_FILE_FORMAT设置文件日志格式,可选值为text, json
GF_LOG_FILE_LEVEL设置文件日志级别
GF_LOG_FILE_LOG_ROTATE启用文件日志轮转
GF_LOG_FILE_MAX_LINES设置文件日志的最大行数
GF_LOG_FILE_MAX_SIZE_SHIFT设置文件日志的最大大小(以位移表示)
GF_LOG_FILE_DAILY_ROTATE启用文件日志的每日轮转
GF_LOG_FILE_MAX_DAYS设置文件日志的最大保留天数
GF_LOG_SYSLOG_FORMAT设置syslog日志格式,可选值为text, json
GF_LOG_SYSLOG_LEVEL设置syslog日志级别
GF_LOG_SYSLOG_NETWORK设置syslog日志的网络协议,可选值为tcp, udp
GF_LOG_SYSLOG_ADDRESS设置syslog日志的地址
GF_LOG_SYSLOG_FACILITY设置syslog日志的设施
GF_LOG_SYSLOG_TAG设置syslog日志的标签
GF_ALERTING_ENABLED启用警报功能
GF_ALERTING_EXECUTE_ALERTS启用警报执行
GF_ALERTING_ERROR_OR_TIMEOUT设置警报的错误或超时时间
GF_ALERTING_NODATA_OR_NULLVALUES设置警报的无数据或空值行为
GF_ALERTING_CONCURRENT_RENDER_LIMIT设置警报的并发渲染限制
GF_ALERTING_EVALUATION_TIMEOUT_SECONDS设置警报的评估超时时间(秒)
GF_ALERTING_NOTIFICATION_TIMEOUT_SECONDS设置警报的通知超时时间(秒)
GF_ALERTING_MAX_ATTEMPTS设置警报的最大尝试次数
GF_EXPLORE_ENABLED启用探索功能
GF_TRACING_ENABLED启用跟踪功能
GF_TRACING_JAEGER_AGENT_HOST设置Jaeger代理的主机
GF_TRACING_JAEGER_AGENT_PORT设置Jaeger代理的端口
GF_TRACING_JAEGER_SAMPLER_TYPE设置Jaeger采样器的类型
GF_TRACING_JAEGER_SAMPLER_PARAM设置Jaeger采样器的参数
GF_TRACING_JAEGER_SAMPLER_MAX_OPERATIONS设置Jaeger采样器的最大操作数
GF_TRACING_JAEGER_SAMPLER_REFRESH_INTERVAL设置Jaeger采样器的刷新间隔
GF_TRACING_JAEGER_REPORTER_MAX_QUEUE_SIZE设置Jaeger报告器的最大队列大小
GF_TRACING_JAEGER_REPORTER_FLUSH_INTERVAL设置Jaeger报告器的刷新间隔
GF_TRACING_JAEGER_REPORTER_LOG_SPANS启用Jaeger报告器的日志跨度
GF_TRACING_JAEGER_REPORTER_LOCAL_AGENT_HOST_PORT设置Jaeger报告器的本地代理主机和端口
GF_TRACING_JAEGER_REPORTER_ENDPOINT设置Jaeger报告器的端点
GF_TRACING_JAEGER_REPORTER_USER设置Jaeger报告器的用户名
GF_TRACING_JAEGER_REPORTER_PASSWORD设置Jaeger报告器的密码
GF_TRACING_JAEGER_TAGS设置Jaeger的标签
GF_TRACING_JAEGER_PROPAGATION设置Jaeger的传播格式
GF_TRACING_JAEGER_DISABLED禁用Jaeger跟踪
GF_TRACING_JAEGER_REPORTER_QUEUE_SIZE设置Jaeger报告器的队列大小
GF_TRACING_JAEGER_REPORTER_BUFFER_FLUSH_INTERVAL设置Jaeger报告器的缓冲区刷新间隔
GF_TRACING_JAEGER_SAMPLER_MANAGER_HOST_PORT设置Jaeger采样器管理器的主机和端口
GF_TRACING_JAEGER_SAMPLER_MIN_PERC设置Jaeger采样器的最小百分比
GF_TRACING_JAEGER_REPORTER_FLUSH_INTERVAL_MS设置Jaeger报告器的刷新间隔(毫秒)
GF_TRACING_JAEGER_REPORTER_MAX_PACKET_SIZE设置Jaeger报告器的最大数据包大小
GF_TRACING_JAEGER_REPORTER_MAX_BACKLOG设置Jaeger报告器的最大积压量
GF_TRACING_JAEGER_REPORTER_COLLECTOR_PATH_ROOT设置Jaeger报告器的收集器路径根
GF_TRACING_JAEGER_REPORTER_COLLECTOR_PORT设置Jaeger报告器的收集器端口
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_HTTP_PATH设置Jaeger报告器的Zipkin HTTP路径
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_HTTP_PATH设置Jaeger报告器的Zipkin HTTP路径
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_TAGS_HEADER设置Jaeger报告器的Zipkin标签头
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_SHARED_RPC_SPAN设置Jaeger报告器的Zipkin共享RPC跨度
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_PROTO_COMPACT设置Jaeger报告器的Zipkin紧凑型协议
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_TIMEOUT设置Jaeger报告器的Zipkin超时时间
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_BATCH_SIZE设置Jaeger报告器的Zipkin批次大小
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_MAX_BACKLOG设置Jaeger报告器的Zipkin最大积压量
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_QUEUE_SIZE设置Jaeger报告器的Zipkin队列大小
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_BUFFER_FLUSH_INTERVAL设置Jaeger报告器的Zipkin缓冲区刷新间隔
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_IO_FLUSH_INTERVAL设置Jaeger报告器的Zipkin IO刷新间隔
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_IO_BATCH_SIZE设置Jaeger报告器的Zipkin IO批次大小
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_IO_MAX_BACKLOG设置Jaeger报告器的Zipkin IO最大积压量
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_IO_QUEUE_SIZE设置Jaeger报告器的Zipkin IO队列大小
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_IO_BUFFER_FLUSH_INTERVAL设置Jaeger报告器的Zipkin IO缓冲区刷新间隔
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_IO_WRITE_TIMEOUT设置Jaeger报告器的Zipkin IO写入超时时间
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_IO_DISPATCH_TIMEOUT设置Jaeger报告器的Zipkin IO调度超时时间
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_IO_BATCH_TIMEOUT设置Jaeger报告器的Zipkin IO批次超时时间
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_IO_BATCH_WORKERS设置Jaeger报告器的Zipkin IO批次工作线程数
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_IO_BATCH_QUEUE_SIZE设置Jaeger报告器的Zipkin IO批次队列大小
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_IO_BATCH_QUEUE_OVERFLOW设置Jaeger报告器的Zipkin IO批次队列溢出策略
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_IO_BATCH_QUEUE_BATCH_SIZE设置Jaeger报告器的Zipkin IO批次队列批次大小
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_IO_BATCH_QUEUE_BATCH_TIMEOUT设置Jaeger报告器的Zipkin IO批次队列批次超时时间
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_IO_BATCH_QUEUE_WORKERS设置Jaeger报告器的Zipkin IO批次队列工作线程数
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_IO_BATCH_QUEUE_MAX_BACKLOG设置Jaeger报告器的Zipkin IO批次队列最大积压量
GF_TRACING_JAEGER_REPORTER_COLLECTOR_ZIPKIN_IO_BATCH_QUEUE_BATCH_WORKERS设置Jaeger报告器的Zipkin IO批次队列批次工作线程数
GF_FEATURE_TOGGLES_ENABLE覆盖配置文件中[feature_toggles]部分的enable设置。这允许你启用或禁用Grafana中的特定功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/700139.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JAVA开发 PDF文件生成表格,表格根据内容自动调整高度

1、展示效果 2、相关功能实现 JAVA开发 使用Apache PDFBox库生成PDF文件&#xff0c;绘制表格 3、实现代码 import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.ap…

龙芯+RT-Thread+LVGL实战笔记(36)——密码锁完善

【写在前面】不知不觉中,又临近学期末了。这个学期,因为一些特殊原因,一直没怎么更新本教程,而且不得已上调了本教程的价格,在此笔者深表歉意。另一方面,自己带的学生发挥不佳,很遗憾未能闯进国赛,为此笔者也郁闷了相当长一段时间。事已至此,也只能慢慢释然,来年再战…

Python实现音乐播放器 -----------内附源码

Python做一个简易的音乐播放器 简易音乐播放器 import time import pygamefile r歌曲路径 pygame.mixer.init() print(正在播放,file) track pygame.mixer.music.load(file) pygame.mixer.music.play() time.sleep(130) pygame.mixer.music.stop()运行效果&#xff1a; 开始…

计算机网络:网络层 - IPv4地址

计算机网络&#xff1a;网络层 - IPv4地址 分类编址划分子网子网掩码 无分类编址 CIDRCIDR 地址块构造超网 在酒店中&#xff0c;每个房间都有门牌号码&#xff0c;服务员送餐时&#xff0c;就可以根据门牌号码来判断一份餐要送到那个房间。 在网络中也是如此&#xff0c;一份…

万万没想到,一个不起眼的小功能,差点把我们项目搞崩溃!

大家好&#xff0c;我是程序员鱼皮。今天分享一个真实项目开发的小故事。 故事 最近我们团队一直在持续更新编程导航网站&#xff0c;优化了界面&#xff0c;也新增了不少功能。现在网站长下面这样&#xff0c;是不是看着比以前舒服多了&#xff1f; 编程导航&#xff1a;htt…

2024泰迪智能科技大数据实训室方案

大数据实训室的主要目的是培养大数据平台运维项目的实践能力,以数据计算、分析、挖掘和可视化的案例训练为辅助。实训室旨在培养德智体全面发展、遵纪守法、掌握大数据平台运维基本技能、具备大数据应用、分析和系统管理与运维能力的高素质大数据技术人才。 大数据实训室建设的…

理解科研中的空间域和时域和频域

文章目录 空间域时域频域频域中的高低概念 读了很多的论文后&#xff0c;才感知到论文中常说的什么空间域怎么怎么样&#xff0c;时域怎么怎么样&#xff0c;频域怎么怎么样。 本文其实主要写的是频域。 空间域 spatial domain &#xff1b; 时域 temporal domain &#xff1b…

【Modelground】个人AI产品MVP迭代平台(4)——Mediapipe视频处理网站介绍

文章目录 介绍模型配置输入输出核心实现&#xff08;源码&#xff09;总结 介绍 这篇文章我将硬核介绍Modelground的第一个产品——Mediapipe视频处理&#xff01;网站入口为https://tryiscool.space/ml-video/&#xff0c;如图所示&#xff0c;欢迎体验。 tip: 由于服务器带宽…

Query传递的参数需不需要加注解?加什么?为什么有的时候要加有的时候不加?

Query传递过来的参数可以加&#xff0c;也可以不加注解。如果要加&#xff0c;是在传递的参数名和后端的变量名不一致的情况下&#xff0c;要加RequestParam如果传递过来的参数名和后端的变量名一致&#xff0c;则可以不加RequestParam。 传递过来的数据如果是通过 Query 方式…

Java操作数据库 —— JDBC ① 基础篇

我走我的路&#xff0c;有人拦也走&#xff0c;没人陪也走 —— 24.6.7 JDBC JDBC就是使用Java语言操作关系型数据库的一套API 一、JDBC简介 JDBC 概念 JDBC 就是使用Java语言操作关系型数据库的一套API 全称:(Java DataBase Connectivity)意为Java 数据库连接 JDBC 本质: ①…

7种常用数据分析方法,建议收藏学习(下)

在上一篇内容里&#xff0c;我们提到了常用的数据分析放法&#xff0c;比如&#xff1a;漏斗分析法、留存分析法、分组分析法、矩阵分析法。没有看到的上篇推送的小伙伴可以回过头去查看我们之前的推送。 今天&#xff0c;我们继续讲后面的内容&#xff1a;关联分析法、指标分…

图钉AI导航

1、图钉AI导航 https://www.tudingai.com/

MySQL复习题(期末考试)

MySQL复习题&#xff08;期末考试&#xff09; 1.MySQL支持的日期类型&#xff1f; DATE,DATETIME,TIMESTAMP,TIME,TEAR 2.为表添加列的语法&#xff1f; alter table 表名 add column 列名 数据类型; 3.修改表数据类型的语法是&#xff1f; alter table 表名 modify 列名 新…

【机器学习】让计算机变得更加智能

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 目录 机器学习&#xff1a;让计算机…

springmvc 全局异常处理器配置的三种方式深入底层源码分析原理

文章目录 springmvc 全局异常处理器配置的三种方式&深入底层源码分析原理配置全局异常处理器的三种方式实现接口HandlerExceptionResolver并配置到WebMvcConfigurer注解式配置ExceptionHandlercontroller里方法上定义ExceptionHandler 深入源码分析进入DispatcherServlet执…

Jmeter07:函数

1 Jmeter组件&#xff1a;函数 1.1 是什么&#xff1f; 是程序中的封装单元&#xff08;最小的&#xff09;&#xff0c;封装一些功能实现 1.2 为什么&#xff1f; 优点1&#xff1a;易读 易维护 优点2&#xff1a;实现功能复用 1.3 怎么用&#xff1f; 流程&#xff1a; 1&…

HCIE认证,这些误区要避开

追求HCIE认证是许多网络工程师提升职业水平的选择之一。 然而&#xff0c;在这条备考之路上&#xff0c;存在不少误解可能会误导你的学习方向或影响你的备考效率。 了解并避开这些常见误区&#xff0c;将帮助你更有效地准备HCIE认证考试。 01 误区一&#xff1a;过分依赖题库 …

【Three.js】知识梳理二:Three.js引用和环境搭建

1.文件包下载和目录简介 1.1 文件包下载 a. 官方网站下载&#xff1a; 访问 Three.js 的官方网站&#xff08;threejs.org/&#xff09;并点击 "Download" 按钮&#xff0c;下载最新版本的文件包。 b. GitHub仓库下载&#xff1a; 访问 Three.js 的 GitHub 仓库&a…

面向对象设计原则概述

面向对象设计原则概述 面向对象设计原则概述 面向对象设计原则概述单一职责原则开闭原则里氏代换原则依赖倒转原则接口隔离原则合成复用原则迪米特法则 内容来自《设计模式与艺术》一文。后续会陆续分享书中值得深思观点。 面向对象设计的目标之一在于支持可维护性复用&#xf…

Django UpdateView视图

UpdateView是Django中的一个通用视图&#xff0c;用于处理对象的更新操作。它允许用户更新一个已经存在的对象。UpdateView通常与一个模型表单一起使用&#xff0c;这样用户就可以看到当前对象的值&#xff0c;并可以修改它们。 1&#xff0c;添加视图 Test/app3/views.py fr…