apiVersion: influxdata.com/v2alpha1 kind: Label metadata: name: unruffled-nash-855001 spec: color: '#FFB6A0' name: dockerhub --- apiVersion: influxdata.com/v2alpha1 kind: Bucket metadata: name: wizardly-hertz-855005 spec: associations: - kind: Label name: unruffled-nash-855001 name: docker_hub --- apiVersion: influxdata.com/v2alpha1 kind: Dashboard metadata: name: suspicious-greider-055001 spec: associations: - kind: Label name: unruffled-nash-855001 charts: - height: 1 kind: Markdown name: Name this Cell note: '## InfluxDB 1.x' width: 3 - colors: - hex: '#00C9FF' id: base name: laser type: text decimalPlaces: 0 height: 2 kind: Single_Stat name: InfluxDB Pulls queries: - query: |- from(bucket: "docker_hub") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["server"] == "https://hub.docker.com/v2/repositories/library/influxdb/") |> filter(fn: (r) => r["_field"] == "pull_count") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") width: 3 yPos: 1 - height: 1 kind: Markdown name: Name this Cell note: '## Telegraf' width: 3 yPos: 3 - colors: - hex: '#F95F53' id: base name: curacao type: text decimalPlaces: 0 height: 2 kind: Single_Stat name: Telegraf Pulls queries: - query: |- from(bucket: "docker_hub") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["server"] == "https://hub.docker.com/v2/repositories/library/telegraf") |> filter(fn: (r) => r["_field"] == "pull_count") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") width: 3 yPos: 4 - height: 1 kind: Markdown name: Name this Cell note: '## Chronograf' width: 3 yPos: 6 - colors: - hex: '#9394FF' id: base name: comet type: text decimalPlaces: 0 height: 2 kind: Single_Stat name: Chronograf Pulls queries: - query: |- from(bucket: "docker_hub") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["server"] == "https://hub.docker.com/v2/repositories/library/chronograf") |> filter(fn: (r) => r["_field"] == "pull_count") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") width: 3 yPos: 7 - height: 1 kind: Markdown name: Name this Cell note: | ## Kapacitor width: 3 yPos: 9 - colors: - hex: '#4ED8A0' id: base name: rainforest type: text decimalPlaces: 0 height: 2 kind: Single_Stat name: Kapacitor Pulls queries: - query: |- from(bucket: "docker_hub") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["server"] == "https://hub.docker.com/v2/repositories/library/kapacitor") |> filter(fn: (r) => r["_field"] == "pull_count") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") width: 3 yPos: 10 - colors: - hex: '#00C9FF' id: base name: laser type: text decimalPlaces: 0 height: 1 kind: Single_Stat name: InfluxDB Stars queries: - query: |- from(bucket: "docker_hub") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["server"] == "https://hub.docker.com/v2/repositories/library/influxdb/") |> filter(fn: (r) => r["_field"] == "star_count") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") width: 2 xPos: 3 - colors: - hex: '#22ADF6' id: base name: pool type: text decimalPlaces: 0 height: 2 kind: Single_Stat name: Change (24 h) queries: - query: |- from(bucket: "docker_hub") |> range(start: -24h) |> filter(fn: (r) => r["server"] == "https://hub.docker.com/v2/repositories/library/influxdb/") |> filter(fn: (r) => r["_field"] == "pull_count") |> increase() |> yield(name: "increase") width: 2 xPos: 3 yPos: 1 - colors: - hex: '#F95F53' id: base name: curacao type: text decimalPlaces: 0 height: 1 kind: Single_Stat name: Telegraf Stars queries: - query: |- from(bucket: "docker_hub") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["server"] == "https://hub.docker.com/v2/repositories/library/telegraf") |> filter(fn: (r) => r["_field"] == "star_count") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") width: 2 xPos: 3 yPos: 3 - colors: - hex: '#F95F53' id: base name: curacao type: text decimalPlaces: 0 height: 2 kind: Single_Stat name: Change (24 h) queries: - query: |- from(bucket: "docker_hub") |> range(start: -24h) |> filter(fn: (r) => r["server"] == "https://hub.docker.com/v2/repositories/library/telegraf") |> filter(fn: (r) => r["_field"] == "pull_count") |> increase() |> yield(name: "increase") width: 2 xPos: 3 yPos: 4 - colors: - hex: '#9394FF' id: base name: comet type: text decimalPlaces: 0 height: 1 kind: Single_Stat name: Chronograf Stars queries: - query: |- from(bucket: "docker_hub") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["server"] == "https://hub.docker.com/v2/repositories/library/chronograf") |> filter(fn: (r) => r["_field"] == "star_count") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") width: 2 xPos: 3 yPos: 6 - colors: - hex: '#9394FF' id: base name: comet type: text decimalPlaces: 0 height: 2 kind: Single_Stat name: Change (24 h) queries: - query: |- from(bucket: "docker_hub") |> range(start: -24h) |> filter(fn: (r) => r["server"] == "https://hub.docker.com/v2/repositories/library/chronograf") |> filter(fn: (r) => r["_field"] == "pull_count") |> increase() |> yield(name: "increase") width: 2 xPos: 3 yPos: 7 - colors: - hex: '#4ED8A0' id: base name: rainforest type: text decimalPlaces: 0 height: 1 kind: Single_Stat name: Kapacitor Stars queries: - query: |- from(bucket: "docker_hub") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["server"] == "https://hub.docker.com/v2/repositories/library/kapacitor") |> filter(fn: (r) => r["_field"] == "star_count") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") width: 2 xPos: 3 yPos: 9 - colors: - hex: '#4ED8A0' id: base name: rainforest type: text decimalPlaces: 0 height: 2 kind: Single_Stat name: Change (24 h) queries: - query: |- from(bucket: "docker_hub") |> range(start: -24h) |> filter(fn: (r) => r["server"] == "https://hub.docker.com/v2/repositories/library/kapacitor") |> filter(fn: (r) => r["_field"] == "pull_count") |> increase() |> yield(name: "increase") width: 2 xPos: 3 yPos: 10 - axes: - base: "10" name: x scale: linear - base: "10" name: y scale: linear colors: - hex: '#00A3FF' id: 601d7573-4df3-4362-8a1f-a60bdef9b708 name: Solid Blue type: scale - hex: '#00A3FF' id: a837f6bb-2dff-4451-830a-c570bfbec0d4 name: Solid Blue type: scale - hex: '#00A3FF' id: fe2b4c9d-5062-4e05-b02c-f22606e2c28a name: Solid Blue type: scale geom: line height: 3 kind: Xy name: InfluxDB Pulls Evolution position: overlaid queries: - query: |- from(bucket: "docker_hub") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "httpjson_image_pulls") |> filter(fn: (r) => r["server"] == "https://hub.docker.com/v2/repositories/library/influxdb/") |> filter(fn: (r) => r["_field"] == "pull_count") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") shade: true width: 7 xCol: _time xPos: 5 yCol: _value - axes: - base: "10" name: x scale: linear - base: "10" name: y scale: linear colors: - hex: '#FD7A5D' id: 96b62113-99b6-46c3-be86-385adbe9f0a7 name: Delorean type: scale - hex: '#5F1CF2' id: dfaffb73-02c8-4050-9a9e-ea7519983b37 name: Delorean type: scale - hex: '#4CE09A' id: 99c3a2b0-c973-4a22-83b2-7172d1a51611 name: Delorean type: scale geom: line height: 3 kind: Xy name: Telegraf Pulls Evolution position: overlaid queries: - query: |- from(bucket: "docker_hub") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "httpjson_image_pulls") |> filter(fn: (r) => r["server"] == "https://hub.docker.com/v2/repositories/library/telegraf") |> filter(fn: (r) => r["_field"] == "pull_count") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") shade: true width: 7 xCol: _time xPos: 5 yCol: _value yPos: 3 - axes: - base: "10" name: x scale: linear - base: "10" name: y scale: linear colors: - hex: '#BE2EE4' id: 2f85d914-6db4-4020-8265-b4a0d3bbf21a name: Solid Purple type: scale - hex: '#BE2EE4' id: 54196f3d-e6a5-4ada-9677-9d6b15115816 name: Solid Purple type: scale - hex: '#BE2EE4' id: 5bf28a29-3bde-4fe7-bc78-7bc105ab74ce name: Solid Purple type: scale geom: line height: 3 kind: Xy name: Chronograf Pulls Evolution position: overlaid queries: - query: |- from(bucket: "docker_hub") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "httpjson_image_pulls") |> filter(fn: (r) => r["server"] == "https://hub.docker.com/v2/repositories/library/chronograf") |> filter(fn: (r) => r["_field"] == "pull_count") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") shade: true width: 7 xCol: _time xPos: 5 yCol: _value yPos: 6 - axes: - base: "10" name: x scale: linear - base: "10" name: y scale: linear colors: - hex: '#34BB55' id: 12cf5ea2-ea8b-4b23-85dc-f00770e5de48 name: Solid Green type: scale - hex: '#34BB55' id: f7d3b14a-27de-40ab-8236-8a02b03be48e name: Solid Green type: scale - hex: '#34BB55' id: a659aa2f-7d49-4d6b-9ee2-a54ff1e1bee0 name: Solid Green type: scale geom: line height: 3 kind: Xy name: Kapacitor Pulls Evolution position: overlaid queries: - query: |- from(bucket: "docker_hub") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "httpjson_image_pulls") |> filter(fn: (r) => r["server"] == "https://hub.docker.com/v2/repositories/library/kapacitor") |> filter(fn: (r) => r["_field"] == "pull_count") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") shade: true width: 7 xCol: _time xPos: 5 yCol: _value yPos: 9 name: Docker Hub Stats --- apiVersion: influxdata.com/v2alpha1 kind: Telegraf metadata: name: dockerhub-config spec: config: | [[outputs.influxdb_v2]] ## The URLs of the InfluxDB cluster nodes. ## ## Multiple URLs can be specified for a single cluster, only ONE of the ## urls will be written to each interval. ## urls exp: http://127.0.0.1:9999 urls = ["$INFLUX_HOST"] ## Token for authentication. token = "$INFLUX_TOKEN" ## Organization is the name of the organization you wish to write to; must exist. organization = "$INFLUX_ORG" ## Destination bucket to write into. bucket = "docker_hub" [agent] interval = "30m" flush_interval = "30m" [[inputs.httpjson]] ## NOTE This plugin only reads numerical measurements, strings and booleans ## will be ignored. ## Name for the service being polled. Will be appended to the name of the ## measurement e.g. "httpjson_webserver_stats". ## ## Deprecated (1.3.0): Use name_override, name_suffix, name_prefix instead. name = "image_pulls" ## URL of each server in the service's cluster servers = [ "https://hub.docker.com/v2/repositories/library/influxdb/", "https://hub.docker.com/v2/repositories/library/telegraf", "https://hub.docker.com/v2/repositories/library/chronograf", "https://hub.docker.com/v2/repositories/library/kapacitor", ] ## Set response_timeout (default 5 seconds) response_timeout = "10s" ## HTTP method to use: GET or POST (case-sensitive) method = "GET" ## Tags to extract from top-level of JSON server response. # tag_keys = [ # "my_tag_1", # "my_tag_2" # ] ## Optional TLS Config # tls_ca = "/etc/telegraf/ca.pem" # tls_cert = "/etc/telegraf/cert.pem" # tls_key = "/etc/telegraf/key.pem" ## Use TLS but skip chain & host verification # insecure_skip_verify = false ## HTTP Request Parameters (all values must be strings). For "GET" requests, data ## will be included in the query. For "POST" requests, data will be included ## in the request body as "x-www-form-urlencoded". # [inputs.httpjson.parameters] # event_type = "cpu_spike" # threshold = "0.75" ## HTTP Request Headers (all values must be strings). # [inputs.httpjson.headers] # X-Auth-Token = "my-xauth-token" # apiVersion = "v1"