Kong Prometheus 插件使用教程
1. 项目的目录结构及介绍
kong-plugin-prometheus/
├── CHANGELOG.md
├── LICENSE
├── README.md
├── editorconfig
├── gitignore
├── kong-prometheus-plugin-1.3.0-1.rockspec
├── luacheckrc
├── spec
│ └── busted
├── travis.yml
└── kong
└── plugins
└── prometheus
├── handler.lua
├── schema.lua
└── migrations
└── init.lua
CHANGELOG.md
: 记录项目的变更历史。LICENSE
: 项目的开源许可证。README.md
: 项目的基本介绍和使用说明。editorconfig
: 编辑器配置文件。gitignore
: Git 忽略文件配置。kong-prometheus-plugin-1.3.0-1.rockspec
: LuaRocks 包配置文件。luacheckrc
: Lua 代码检查配置文件。spec/busted
: 测试文件目录。travis.yml
: Travis CI 配置文件。kong/plugins/prometheus
: 插件核心代码目录。handler.lua
: 插件的主要处理逻辑。schema.lua
: 插件的配置模式定义。migrations/init.lua
: 插件的数据库迁移脚本。
2. 项目的启动文件介绍
插件的启动文件主要是 handler.lua
,它定义了插件的主要处理逻辑。以下是 handler.lua
的基本结构:
local prometheus = require 'prometheus'
local BasePlugin = require 'kong.plugins.base_plugin'
local PrometheusHandler = BasePlugin:extend()
PrometheusHandler.VERSION = "1.3.0"
PrometheusHandler.PRIORITY = 1000
function PrometheusHandler:new()
PrometheusHandler.super.new(self, "prometheus")
end
function PrometheusHandler:init_worker()
-- 初始化工作线程
end
function PrometheusHandler:access(config)
-- 访问阶段处理逻辑
end
function PrometheusHandler:log(config)
-- 日志阶段处理逻辑
end
return PrometheusHandler
3. 项目的配置文件介绍
插件的配置文件主要是 schema.lua
,它定义了插件的配置模式。以下是 schema.lua
的基本结构:
return {
no_consumer = true,
fields = {
-- 配置字段定义
some_config_field = { type = "string", default = "default_value" },
another_config_field = { type = "number", default = 10 },
}
}
在 kong.conf
文件中,可以添加插件的配置:
plugins = bundled,prometheus
# Prometheus 插件配置
prometheus = on
prometheus.some_config_field = "custom_value"
prometheus.another_config_field = 20
通过以上配置,可以启用并自定义 Prometheus 插件的行为。