我正在使用 gocraft/health 来检查我的服务的运行状况并获得每个端点的指标。
我使用JSON轮询接收器来获取指标。

sink := health.NewJsonPollingSink(time.Minute*5, time.Minute*5)
stream.AddSink(sink)

我想在这里使用 healthtop和运行状况良好的 Link,它们解释了如何。

我修复了环境变量:export HEALTHD_MONITORED_HOSTPORTS=:5001 HEALTHD_SERVER_HOSTPORT=:5002 healthd,正如他们所说

他们说“现在您可以运行它”之后。怎么,他们没有给出任何命令。我真的不明白他们的意思。

我导航到 src/github.com/gocraft/health/cmd/healthed 。我在运行时找到了 main.go ,我在控制台中找到了它
    [openrtb@sd-69536 healthd]$ go run main.go
    [2015-06-17T23:04:20.871743758Z]: job:general event:starting kvs:[health_host_port::5002 monitored_host_ports::5001,:5002 server_host_port::5002]
    [2015-06-17T23:04:20.87810814Z]: job:poll status:success time:4 ms kvs:[host_port::5002]
    [2015-06-17T23:04:20.881896459Z]: job:poll status:success time:8 ms kvs:[host_port::5001]
    [2015-06-17T23:04:20.882338024Z]: job:recalculate status:success time:231 μs
    [2015-06-17T23:04:23.275370787Z]: job:recalculate status:success time:6 μs
    [2015-06-17T23:04:30.875230839Z]: job:poll status:success time:1573 μs kvs:[host_port::5002]
    [2015-06-17T23:04:30.881415193Z]: job:poll status:success time:7 ms kvs:[host_port::5001]
.
.

但在那些端点上没有果断

localhost:5002/jobs:列出热门作业

localhost:5002/hosts:列出所有受监视的主机及其状态

它给了我 {“error”:“not_found”}

除了这个本地主机:5002/health 我得到了这个JSON响应
{
    "instance_id": "sd-69536.1291",
    "interval_duration": 3600000000000,
    "aggregations": [
        {
            "interval_start": "2015-06-18T01:00:00+02:00",
            "serial_number": 48,
            "jobs": {
                "general": {
                    "timers": {},
                    "events": {
                        "starting": 1
                    },
                    "event_errs": {},
                    "count": 0,
                    "nanos_sum": 0,
                    "nanos_sum_squares": 0,
                    "nanos_min": 0,
                    "nanos_max": 0,
                    "count_success": 0,
                    "count_validation_error": 0,
                    "count_panic": 0,
                    "count_error": 0,
                    "count_junk": 0
                },
                "poll": {
                    "timers": {},
                    "events": {},
                    "event_errs": {},
                    "count": 24,
                    "nanos_sum": 107049159,
                    "nanos_sum_squares": 6.06770682813009e+14,
                    "nanos_min": 1581783,
                    "nanos_max": 8259442,
                    "count_success": 24,
                    "count_validation_error": 0,
                    "count_panic": 0,
                    "count_error": 0,
                    "count_junk": 0
                },
                "recalculate": {
                    "timers": {},
                    "events": {},
                    "event_errs": {},
                    "count": 23,
                    "nanos_sum": 3501601,
                    "nanos_sum_squares": 6.75958305123e+11,
                    "nanos_min": 70639,
                    "nanos_max": 290877,
                    "count_success": 23,
                    "count_validation_error": 0,
                    "count_panic": 0,
                    "count_error": 0,
                    "count_junk": 0
                }
            },
            "timers": {},
            "events": {
                "starting": 1
            },
            "event_errs": {}
        }
    ]
}

但不知道这个结果是什么意思,因为它与我的
localhost:5001/health 端点,通常应按照他们所说的进行聚合。

最佳答案

您下载的是二进制文件,因此,如果您位于正确的目录中,则可以使用healthd调用它,实际上它们提供了此示例。

HEALTHD_MONITORED_HOSTPORTS=:5020 HEALTHD_SERVER_HOSTPORT=:5032 healthd

设置env var的效果不如使用这两个值调用运行状况好(使用export或其他操作才能将更改保留到一个命令之外)。 healthtop更清楚地说明了它的含义,但是从它们的路径可以看到,它们都是gocraft/health/cmd/healthtop命令。他们有几个使用bash的healthtop的示例,关于运行状况的描述不那么明确,但是是相同的。

如果您运行了该命令(如您的问题所示),那么您可能想要尝试healthtop jobs或达到此目的的某些操作。我对这个项目一无所知,也不在乎研究它,但是据我所知,healthd只是一种从各种/health端点收集结果并将其提供给API的服务。似乎他们打算让您在上面使用healthtop来查看报告。

还要注意这一点;



我不确定域是什么(如果在本地运行,则为localhost:5032?),但是您应该只应该能够访问localhost:5032/jobs并查看healthd正在运行并且正在执行某些操作。另外,请检查您的应用程序以确认其已启动并正在运行。不要直接期望它有任何输出,这就是healthtop的目的。

10-08 03:12