Go to file
Ben Kochie 4621bca6f6
More community cleanup
* Fix up naming to be json_exporter.
* Fix more imports/paths.
* Add Go modules.

Signed-off-by: Ben Kochie <superq@gmail.com>
2020-04-17 08:45:38 +02:00
.circleci More community cleanup 2020-04-17 08:45:38 +02:00
example Initial import 2016-02-08 22:55:40 +09:00
harness Update for prometheus-community 2020-04-17 08:24:27 +02:00
jsonexporter More community cleanup 2020-04-17 08:45:38 +02:00
.gitignore Initial import 2016-02-08 22:55:40 +09:00
.promu.yml More community cleanup 2020-04-17 08:45:38 +02:00
go.mod More community cleanup 2020-04-17 08:45:38 +02:00
go.sum More community cleanup 2020-04-17 08:45:38 +02:00
json_exporter.go More community cleanup 2020-04-17 08:45:38 +02:00
LICENSE Initial commit 2016-02-08 22:25:55 +09:00
Makefile Update for prometheus-community 2020-04-17 08:24:27 +02:00
Makefile.common Update for prometheus-community 2020-04-17 08:24:27 +02:00
README.md More community cleanup 2020-04-17 08:45:38 +02:00
VERSION Update for prometheus-community 2020-04-17 08:24:27 +02:00

json_exporter

A prometheus exporter which scrapes remote JSON by JSONPath.

Build

./gow get .
./gow build -o json_exporter .

Example Usage

$ cat example/data.json
{
    "counter": 1234,
    "values": [
        {
            "id": "id-A",
            "count": 1,
            "state": "ACTIVE"
        },
        {
            "id": "id-B",
            "count": 2,
            "state": "INACTIVE"
        },
        {
            "id": "id-C",
            "count": 3,
            "state": "ACTIVE"
        },
    ]
}

$ cat example/config.yml
- name: example_global_value
  path: $.counter
  labels:
    environment: beta # static label

- name: example_value
  type: object
  path: $.values[*]?(@.state == "ACTIVE")
  labels:
    environment: beta # static label
    id: $.id          # dynamic label
  values:
    active: 1      # static value
    count: $.count # dynamic value

$ python -m SimpleHTTPServer 8000 &
Serving HTTP on 0.0.0.0 port 8000 ...

$ ./json_exporter http://localhost:8000/example/data.json example/config.yml &
INFO[2016-02-08T22:44:38+09:00] metric registered;name:<example_global_value>
INFO[2016-02-08T22:44:38+09:00] metric registered;name:<example_value_active>
INFO[2016-02-08T22:44:38+09:00] metric registered;name:<example_value_count>
127.0.0.1 - - [08/Feb/2016 22:44:38] "GET /example/data.json HTTP/1.1" 200 -

$ curl http://localhost:7979/metrics | grep ^example
example_global_value{environment="beta"} 1234
example_value_active{environment="beta",id="id-A"} 1
example_value_active{environment="beta",id="id-C"} 1
example_value_count{environment="beta",id="id-A"} 1
example_value_count{environment="beta",id="id-C"} 3

See Also