http - Elixir:仅为普罗米修斯指标启动 http 服务器
问题描述
我有以下代码:
defmodule MyApp.Http do
use Application
require Logger
def start(_type, _args) do
import Supervisor.Spec, warn: false
MyApp.PlugPipelineInstrumenter.setup()
MyApp.MetricsExporter.setup()
opts = [strategy: :one_for_one, name: MyApp.Http.Supervisor]
Supervisor.start_link([], opts)
end
end
defmodule MyApp.MetricsExporter do
use Prometheus.PlugExporter
end
defmodule MyApp.PlugPipelineInstrumenter do
use Prometheus.PlugPipelineInstrumenter
end
但它什么也没做。当我添加:
plug MyApp.MetricsExporter
plug MyApp.PlugPipelineInstrumenter
我得到编译错误:undefined function plug/1
. 我使用长生不老药 1.10.3。我在这里做错了什么?
解决方案
我制作了一个名为prometheus_sidecar的十六进制包,它创建了一个专用于 prometheus 的牧场服务器(因此您可以在任何 elixir 应用程序中运行它)并为您连接prometheus_plugs。
它利用了 erlang 的应用程序启动生命周期,因此除了将其作为库添加到您的应用程序之外,无需进行任何配置。
如果您觉得它有用,请告诉我。
推荐阅读
- intellij-idea - 在 IntelliJ IDEA 中看不到 Kotlin(多平台库)选项
- bash - bash_profile 麻烦,有两个节点模块目录
- java - 在面向服务的架构中,映射器调用服务是一种好习惯吗?
- javascript - 页面上的条件测试模块(如果存在) - 使用赛普拉斯
- python-3.x - 是否可以发布我自己的 facebook wall usign graph API v3.3?
- javascript - 在不询问您的位置的情况下确定用户所在的县
- amazon-web-services - AWS - Dynamodb 流将多个事件组合成单个流以用于 lambda 触发器 – 不需要的流聚合
- jquery - 克隆一个带有控件的数据表行
- php - 我的 SQL 语句正确但仍然返回错误
- html - 通过电子邮件将 html 发送到 csv 文件