diff --git a/charts/kubezero-logging/README.md b/charts/kubezero-logging/README.md
index 3eb75556..0f008b49 100644
--- a/charts/kubezero-logging/README.md
+++ b/charts/kubezero-logging/README.md
@@ -1,6 +1,6 @@
# kubezero-logging
-![Version: 0.8.11](https://img.shields.io/badge/Version-0.8.11-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.6.0](https://img.shields.io/badge/AppVersion-1.6.0-informational?style=flat-square)
+![Version: 0.8.12](https://img.shields.io/badge/Version-0.8.12-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.6.0](https://img.shields.io/badge/AppVersion-1.6.0-informational?style=flat-square)
KubeZero Umbrella Chart for complete EFK stack
@@ -19,7 +19,7 @@ Kubernetes: `>= 1.26.0`
| Repository | Name | Version |
|------------|------|---------|
| https://cdn.zero-downtime.net/charts/ | kubezero-lib | >= 0.1.6 |
-| https://fluent.github.io/helm-charts | fluent-bit | 0.46.0 |
+| https://fluent.github.io/helm-charts | fluent-bit | 0.46.2 |
| https://fluent.github.io/helm-charts | fluentd | 0.5.2 |
## Changes from upstream
diff --git a/charts/kubezero-logging/charts/fluent-bit/Chart.yaml b/charts/kubezero-logging/charts/fluent-bit/Chart.yaml
index 32df1084..1b1c6fe8 100644
--- a/charts/kubezero-logging/charts/fluent-bit/Chart.yaml
+++ b/charts/kubezero-logging/charts/fluent-bit/Chart.yaml
@@ -1,9 +1,9 @@
annotations:
artifacthub.io/changes: |
- kind: changed
- description: "Updated _Fluent Bit_ OCI image to [v3.0.0](https://github.com/fluent/fluent-bit/releases/tag/v3.0.0)."
+ description: "Updated _Fluent Bit_ OCI image to [v3.0.2](https://github.com/fluent/fluent-bit/releases/tag/v3.0.2)."
apiVersion: v1
-appVersion: 3.0.1
+appVersion: 3.0.2
description: Fast and lightweight log processor and forwarder or Linux, OSX and BSD
family operating systems.
home: https://fluentbit.io/
@@ -24,4 +24,4 @@ maintainers:
name: fluent-bit
sources:
- https://github.com/fluent/fluent-bit/
-version: 0.46.0
+version: 0.46.2
diff --git a/charts/kubezero-telemetry/Chart.yaml b/charts/kubezero-telemetry/Chart.yaml
index 20c88b4c..e29bd026 100644
--- a/charts/kubezero-telemetry/Chart.yaml
+++ b/charts/kubezero-telemetry/Chart.yaml
@@ -25,4 +25,8 @@ dependencies:
version: 3.0.3
repository: https://jaegertracing.github.io/helm-charts
condition: jaeger.enabled
+ - name: fluentd
+ version: 0.5.2
+ repository: https://fluent.github.io/helm-charts
+ condition: fluentd.enabled
kubeVersion: ">= 1.26.0"
diff --git a/charts/kubezero-telemetry/README.md b/charts/kubezero-telemetry/README.md
index 35f09c83..924b35c1 100644
--- a/charts/kubezero-telemetry/README.md
+++ b/charts/kubezero-telemetry/README.md
@@ -19,6 +19,7 @@ Kubernetes: `>= 1.26.0`
| Repository | Name | Version |
|------------|------|---------|
| https://cdn.zero-downtime.net/charts/ | kubezero-lib | >= 0.1.6 |
+| https://fluent.github.io/helm-charts | fluentd | 0.5.2 |
| https://jaegertracing.github.io/helm-charts | jaeger | 3.0.3 |
| https://open-telemetry.github.io/opentelemetry-helm-charts | opentelemetry-collector | 0.89.0 |
diff --git a/charts/kubezero-telemetry/charts/fluentd/.helmignore b/charts/kubezero-telemetry/charts/fluentd/.helmignore
new file mode 100644
index 00000000..0e8a0eb3
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/.helmignore
@@ -0,0 +1,23 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/charts/kubezero-telemetry/charts/fluentd/Chart.yaml b/charts/kubezero-telemetry/charts/fluentd/Chart.yaml
new file mode 100644
index 00000000..1feac00b
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/Chart.yaml
@@ -0,0 +1,15 @@
+apiVersion: v2
+appVersion: v1.16.2
+description: A Helm chart for Kubernetes
+home: https://www.fluentd.org/
+icon: https://www.fluentd.org/images/miscellany/fluentd-logo_2x.png
+maintainers:
+- email: eduardo@treasure-data.com
+ name: edsiper
+- email: diogo.filipe.tomas.guerra@cern.ch
+ name: dioguerra
+name: fluentd
+sources:
+- https://github.com/fluent/fluentd/
+- https://github.com/fluent/fluentd-kubernetes-daemonset
+version: 0.5.2
diff --git a/charts/kubezero-telemetry/charts/fluentd/README.md b/charts/kubezero-telemetry/charts/fluentd/README.md
new file mode 100644
index 00000000..ab103a32
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/README.md
@@ -0,0 +1,187 @@
+# Fluentd Helm Chart
+
+[Fluentd](https://www.fluentd.org/) is an open source data collector for unified logging layer. Fluentd allows you to unify data collection and consumption for a better use and understanding of data.
+
+## Installation
+
+To add the `fluent` helm repo, run:
+
+```sh
+helm repo add fluent https://fluent.github.io/helm-charts
+helm repo update
+```
+
+To install a release named `fluentd`, run:
+
+```sh
+helm install fluentd fluent/fluentd
+```
+## Upgrading
+
+### To 0.4.0
+
+Although the services will deploy and generally work, version 0.4.0 introduces some changes that are considered _breaking changes_. To upgrade, you should do the following to avoid any potential conflicts or problems:
+
+- Add the `mountVarLogDirectory` and `mountDockerContainersDirectory` values and set them to the values you need; to follow the previous setup where these were mounted by default, set the values to `true`, e.g. `mountVarLogDirectory: true`
+- If you have the `varlog` mount point defined and enabled under both `volumes` and `volumeMounts`, set `mountVarLogDirectory` to true
+- If you have the `varlibdockercontainers` mount point defined and enabled under both `volumes` and `volumeMounts`, set `mountDockerContainersDirectory` to true
+- Remove the previous default volume and volume mount definitions - `etcfluentd-main`, `etcfluentd-config`, `varlog`, and `varlibdockercontainers`
+- Remove the `FLUENTD_CONF` entry from the `env:` list
+
+## Chart Values
+
+```sh
+helm show values fluent/fluentd
+```
+
+## Value Details
+
+### default-volumes
+
+The default configurations bellow are required for the fluentd pod to be able to read the hosts container logs. The second section is responsible for allowing the user to load the "extra" configMaps either defined by the `fileConfigs` contained objects or, in addition, loaded externally and indicated by `configMapConfigs`.
+
+```yaml
+- name: varlog
+ hostPath:
+ path: /var/log
+- name: varlibdockercontainers
+ hostPath:
+ path: /var/lib/docker/containers
+---
+- name: etcfluentd-main
+ configMap:
+ name: fluentd-main
+ defaultMode: 0777
+- name: etcfluentd-config
+ configMap:
+ name: fluentd-config
+ defaultMode: 0777
+```
+
+### default-volumeMounts
+
+The default configurations bellow are required for the fluentd pod to be able to read the hosts container logs. They should not be removed unless for some reason your container logs are accessible through a different path
+
+```yaml
+- name: varlog
+ mountPath: /var/log
+- name: varlibdockercontainers
+ mountPath: /var/lib/docker/containers
+ readOnly: true
+```
+
+The section bellow is responsible for allowing the user to load the "extra" configMaps either defined by the `fileConfigs` contained objects or otherwise load externally and indicated by `configMapConfigs`.
+
+```yaml
+- name: etcfluentd-main
+ mountPath: /etc/fluent
+- name: etcfluentd-config
+ mountPath: /etc/fluent/config.d/
+ ```
+
+### default-fluentdConfig
+
+The `fileConfigs` section is organized by sources -> filters -> destinations. Flow control must be configured using fluentd routing with tags or labels to guarantee that the configurations are executed as intended. Alternatively you can use numeration on your files to control the configurations loading order.
+
+```yaml
+01_sources.conf: |-
+
+
+02_filters.conf: |-
+
+
+03_dispatch.conf: |-
+
+
+04_outputs.conf: |-
+
+```
+
+## Backwards Compatibility - v0.1.x
+
+The old fluentd chart used the ENV variables and the default fluentd container definitions to set-up automatically many aspects of fluentd. It is still possible to trigger this behaviour by removing this charts current `.Values.env` configuration and replace by:
+
+```yaml
+env:
+- name: FLUENT_ELASTICSEARCH_HOST
+ value: "elasticsearch-master"
+- name: FLUENT_ELASTICSEARCH_PORT
+ value: "9200"
+```
diff --git a/charts/kubezero-telemetry/charts/fluentd/dashboards/fluentd.json b/charts/kubezero-telemetry/charts/fluentd/dashboards/fluentd.json
new file mode 100644
index 00000000..1d19c675
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/dashboards/fluentd.json
@@ -0,0 +1,3185 @@
+{
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "$DS_PROMETHEUS",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "description": "fluentd 1.x deployed in kubernetes and scraped by prometheus",
+ "editable": true,
+ "gnetId": 13042,
+ "graphTooltip": 1,
+ "iteration": 1613145081841,
+ "links": [],
+ "panels": [
+ {
+ "collapsed": false,
+ "datasource": "$DS_PROMETHEUS",
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 0
+ },
+ "id": 19,
+ "panels": [],
+ "title": "General",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "If you see errors then you probbaly have serious issues with log processing, see https://docs.fluentd.org/buffer#handling-unrecoverable-errors\n\nRetries are normal but should occur only from time to time, otherwise check for network errors or destination is too slow and requires additional tuning per given provider.",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 5,
+ "w": 8,
+ "x": 0,
+ "y": 1
+ },
+ "hiddenSeries": false,
+ "id": 14,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "/Error.*/",
+ "color": "#E02F44"
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(fluentd_output_status_retry_count{pod=~\"$pod\"}[1m]))",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "Retry rate",
+ "refId": "A"
+ },
+ {
+ "expr": "sum(rate(fluentd_output_status_num_errors{pod=~\"$pod\"}[1m]))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Error rate",
+ "refId": "C"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Fluentd output error/retry rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "ops",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "Input and output total rates",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 5,
+ "w": 8,
+ "x": 8,
+ "y": 1
+ },
+ "hiddenSeries": false,
+ "id": 44,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(fluentd_input_status_num_records_total{pod=~\"$pod\"}[1m]))",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "input",
+ "refId": "A"
+ },
+ {
+ "expr": "sum(rate(fluentd_output_status_write_count{pod=~\"$pod\"}[1m]))",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "output",
+ "refId": "B"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Input / output rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "This should not reach 0 otherwise logs are blocked from processing or even dropped",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 5,
+ "w": 8,
+ "x": 16,
+ "y": 1
+ },
+ "hiddenSeries": false,
+ "id": 20,
+ "legend": {
+ "alignAsTable": true,
+ "avg": false,
+ "current": true,
+ "max": false,
+ "min": false,
+ "rightSide": true,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "min(fluentd_output_status_buffer_available_space_ratio)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "lowest across all hosts",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "fluentd output status buffer available space ratio",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "decimals": 0,
+ "format": "percent",
+ "label": null,
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ },
+ {
+ "decimals": 0,
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "total flush time",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 5,
+ "w": 8,
+ "x": 0,
+ "y": 6
+ },
+ "hiddenSeries": false,
+ "id": 21,
+ "legend": {
+ "alignAsTable": true,
+ "avg": false,
+ "current": true,
+ "max": false,
+ "min": false,
+ "rightSide": true,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "count",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(fluentd_output_status_flush_time_count{pod=~\"$pod\"}[1m]))",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "time",
+ "refId": "A"
+ },
+ {
+ "expr": "sum(rate(fluentd_output_status_slow_flush_count[1m]))",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "count",
+ "refId": "B"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "fluentd output status flush time count rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "decimals": 0,
+ "format": "ms",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "decimals": 0,
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "Current total size of stage and queue buffers.\nfluentd_output_status_buffer_total_bytes",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 5,
+ "w": 8,
+ "x": 8,
+ "y": 6
+ },
+ "hiddenSeries": false,
+ "id": 13,
+ "legend": {
+ "alignAsTable": false,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(fluentd_output_status_buffer_total_bytes) by (type)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{ type }}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Current total size of stage and queue buffers.",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 5,
+ "w": 8,
+ "x": 16,
+ "y": 6
+ },
+ "hiddenSeries": false,
+ "id": 15,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(fluentd_output_status_buffer_queue_length)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "total",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Fluentd output buffer queue",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "collapsed": false,
+ "datasource": "$DS_PROMETHEUS",
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 11
+ },
+ "id": 17,
+ "panels": [],
+ "title": "Input details",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "fluentd_input_status_num_records_total",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 0,
+ "y": 12
+ },
+ "hiddenSeries": false,
+ "id": 39,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(fluentd_input_status_num_records_total{pod=~\"$pod\"}[1m])) ",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "total",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Input entries rate (total)",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "fluentd_input_status_num_records_total",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 12,
+ "y": 12
+ },
+ "hiddenSeries": false,
+ "id": 47,
+ "interval": "",
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(fluentd_input_status_num_records_total{pod=~\"$pod\"}[1m])) by (hostname)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{hostname}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Input entries rate per hostname",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "fluentd_input_status_num_records_total",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 0,
+ "y": 18
+ },
+ "hiddenSeries": false,
+ "id": 60,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(fluentd_input_status_num_records_total{pod=~\"$pod\"}[1m])) by (namespace)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{namespace}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Input entries rate per namespace",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "fluentd_input_status_num_records_total",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 12,
+ "y": 18
+ },
+ "hiddenSeries": false,
+ "id": 48,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(fluentd_input_status_num_records_total{pod=~\"$pod\"}[1m])) by (instance)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{namespace}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Input entries rate per instance",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "collapsed": false,
+ "datasource": "$DS_PROMETHEUS",
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 24
+ },
+ "id": 59,
+ "panels": [],
+ "title": "Input details (warning, very slow!)",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "fluentd_input_status_num_records_total",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 0,
+ "y": 25
+ },
+ "hiddenSeries": false,
+ "id": 49,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(fluentd_input_status_num_records_total{pod=~\"$pod\"}[1m])) by (tag)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{tag}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Input entries rate per tag",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "collapsed": false,
+ "datasource": "$DS_PROMETHEUS",
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 31
+ },
+ "id": 41,
+ "panels": [],
+ "title": "Buffer Stage",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "fluentd_output_status_buffer_stage_length",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 0,
+ "y": 32
+ },
+ "hiddenSeries": false,
+ "id": 22,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(fluentd_output_status_buffer_stage_length) by (pod, type)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{pod}} {{ type }}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Current length of stage buffers.",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "fluentd_output_status_buffer_stage_byte_size",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 12,
+ "y": 32
+ },
+ "hiddenSeries": false,
+ "id": 23,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(fluentd_output_status_buffer_stage_byte_size) by (pod, type)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{pod}} {{ type }}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Current total size of stage buffers.",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "collapsed": false,
+ "datasource": "$DS_PROMETHEUS",
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 38
+ },
+ "id": 43,
+ "panels": [],
+ "title": "Buffer Queue",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 0,
+ "y": 39
+ },
+ "hiddenSeries": false,
+ "id": 50,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "max_over_time(fluentd_output_status_buffer_queue_length[1m])",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{pod}} {{ type }}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Maximum buffer length in last 1min",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 12,
+ "y": 39
+ },
+ "hiddenSeries": false,
+ "id": 25,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "max_over_time(fluentd_output_status_buffer_total_bytes[1m])",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{pod}} {{ type }}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Maximum buffer bytes in last 1min",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "fluentd_output_status_buffer_queue_length",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 0,
+ "y": 45
+ },
+ "hiddenSeries": false,
+ "id": 24,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(fluentd_output_status_buffer_queue_length) by (pod, type)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{pod}} {{ type }}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Current length of queue buffers.",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "fluentd_output_status_queue_byte_size",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 12,
+ "y": 45
+ },
+ "hiddenSeries": false,
+ "id": 51,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(fluentd_output_status_queue_byte_size) by (pod, type)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{pod}} {{ type }}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Current total size of queue buffers.",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "collapsed": true,
+ "datasource": "$DS_PROMETHEUS",
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 51
+ },
+ "id": 46,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "fluentd_output_status_buffer_available_space_ratio",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 0,
+ "y": 52
+ },
+ "hiddenSeries": false,
+ "id": 26,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(fluentd_output_status_buffer_available_space_ratio) by (pod, type)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{pod}} {{ type }}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Ratio of available space in buffer.",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "percent",
+ "label": null,
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "title": "Buffer Space",
+ "type": "row"
+ },
+ {
+ "collapsed": false,
+ "datasource": "$DS_PROMETHEUS",
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 52
+ },
+ "id": 53,
+ "panels": [],
+ "title": "Buffer Retries",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "fluentd_output_status_retry_count",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 0,
+ "y": 53
+ },
+ "hiddenSeries": false,
+ "id": 30,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(fluentd_output_status_retry_count{pod=~\"$pod\"}[1m])) by (type)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{type}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Current retry counts.",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "fluentd_output_status_emit_records",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 12,
+ "y": 53
+ },
+ "hiddenSeries": false,
+ "id": 33,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(fluentd_output_status_emit_records{pod=~\"$pod\"}[1m])) by (type)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{type}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Current emit records",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "fluentd_output_status_emit_count",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 0,
+ "y": 59
+ },
+ "hiddenSeries": false,
+ "id": 32,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(fluentd_output_status_emit_count{pod=~\"$pod\"}[1m])) by (type)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{type}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Current emit counts rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "fluentd_output_status_rollback_count",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 12,
+ "y": 59
+ },
+ "hiddenSeries": false,
+ "id": 35,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(fluentd_output_status_rollback_count{pod=~\"$pod\"}[1m])) by (type)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{type}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Current rollback counts",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "fluentd_output_status_write_count",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 0,
+ "y": 65
+ },
+ "hiddenSeries": false,
+ "id": 34,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(fluentd_output_status_write_count{pod=~\"$pod\"}[1m])) by (type)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{type}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Current write counts",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "fluentd_output_status_slow_flush_count",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 12,
+ "y": 65
+ },
+ "hiddenSeries": false,
+ "id": 37,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(fluentd_output_status_slow_flush_count{pod=~\"$pod\"}[1m])) by (type)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{type}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Current slow flush counts",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "fluentd_output_status_retry_wait",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 0,
+ "y": 71
+ },
+ "hiddenSeries": false,
+ "id": 38,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(fluentd_output_status_retry_wait{pod=~\"$pod\"}[1m])) by (type)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{type}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Current retry wait",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "fluentd_output_status_flush_time_count",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 12,
+ "y": 71
+ },
+ "hiddenSeries": false,
+ "id": 36,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(fluentd_output_status_flush_time_count{pod=~\"$pod\"}[1m])) by (type)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{type}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Total flush time",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "ms",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "collapsed": false,
+ "datasource": "$DS_PROMETHEUS",
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 77
+ },
+ "id": 57,
+ "panels": [],
+ "title": "Buffer Errors",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "fluentd_output_status_num_errors",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 0,
+ "y": 78
+ },
+ "hiddenSeries": false,
+ "id": 31,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(fluentd_output_status_num_errors{pod=~\"$pod\"}[1m])) by (type)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{type}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Current number of errors rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "collapsed": false,
+ "datasource": "$DS_PROMETHEUS",
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 84
+ },
+ "id": 55,
+ "panels": [],
+ "title": "Buffer timekeys",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 0,
+ "y": 85
+ },
+ "hiddenSeries": false,
+ "id": 29,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "fluentd_output_status_buffer_newest_timekey - fluentd_output_status_buffer_oldest_timekey",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{pod}} {{ type}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Timekey diff",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "fluentd_output_status_buffer_newest_timekey",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 12,
+ "y": 85
+ },
+ "hiddenSeries": false,
+ "id": 27,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(fluentd_output_status_buffer_newest_timekey) by (pod, type)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{pod}} {{ type }}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Newest timekey in buffer.",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$DS_PROMETHEUS",
+ "description": "fluentd_output_status_buffer_oldest_timekey",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 12,
+ "y": 91
+ },
+ "hiddenSeries": false,
+ "id": 28,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": false,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(fluentd_output_status_buffer_oldest_timekey) by (pod, type)",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{pod}} {{ type }}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Oldest timekey in buffer.",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "refresh": "10s",
+ "schemaVersion": 20,
+ "style": "dark",
+ "tags": [
+ "fluentd",
+ "logging"
+ ],
+ "templating": {
+ "list": [
+ {
+ "current": {
+ "text": "Prometheus",
+ "value": "Prometheus"
+ },
+ "hide": 0,
+ "includeAll": false,
+ "label": "Datasource",
+ "multi": false,
+ "name": "DS_PROMETHEUS",
+ "options": [],
+ "query": "prometheus",
+ "queryValue": "",
+ "refresh": 1,
+ "regex": "",
+ "skipUrlSync": false,
+ "type": "datasource"
+ },
+ {
+ "allValue": null,
+ "current": {
+ "text": "All",
+ "value": "$__all"
+ },
+ "datasource": "$DS_PROMETHEUS",
+ "definition": "label_values(kube_pod_info{pod=~\".*fluentd.*\"}, pod)",
+ "hide": 0,
+ "includeAll": true,
+ "label": "pod",
+ "multi": false,
+ "name": "pod",
+ "options": [],
+ "query": "label_values(kube_pod_info{pod=~\".*fluentd.*\"}, pod)",
+ "refresh": 2,
+ "regex": "",
+ "skipUrlSync": false,
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ }
+ ]
+ },
+ "time": {
+ "from": "now-24h",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "utc",
+ "title": "Fluentd 1.x",
+ "uid": "bNn5LUtizs3",
+ "version": 1
+}
diff --git a/charts/kubezero-telemetry/charts/fluentd/templates/NOTES.txt b/charts/kubezero-telemetry/charts/fluentd/templates/NOTES.txt
new file mode 100644
index 00000000..b248dcb2
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/templates/NOTES.txt
@@ -0,0 +1,5 @@
+Get Fluentd build information by running these commands:
+
+export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "fluentd.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
+kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 24231:24231
+curl http://127.0.0.1:24231/metrics
diff --git a/charts/kubezero-telemetry/charts/fluentd/templates/_helpers.tpl b/charts/kubezero-telemetry/charts/fluentd/templates/_helpers.tpl
new file mode 100644
index 00000000..1b1bf702
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/templates/_helpers.tpl
@@ -0,0 +1,104 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "fluentd.name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "fluentd.fullname" -}}
+{{- if .Values.fullnameOverride -}}
+{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- $name := default .Chart.Name .Values.nameOverride -}}
+{{- if contains $name .Release.Name -}}
+{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Create chart name and version as used by the chart label.
+*/}}
+{{- define "fluentd.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Common labels
+*/}}
+{{- define "fluentd.labels" -}}
+helm.sh/chart: {{ include "fluentd.chart" . }}
+{{ include "fluentd.selectorLabels" . }}
+{{- if .Chart.AppVersion }}
+app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
+{{- end }}
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+{{- end -}}
+
+{{/*
+Selector labels
+*/}}
+{{- define "fluentd.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "fluentd.name" . }}
+app.kubernetes.io/instance: {{ .Release.Name }}
+{{- end -}}
+
+{{/*
+Create the name of the service account to use
+*/}}
+{{- define "fluentd.serviceAccountName" -}}
+{{- if .Values.serviceAccount.create -}}
+ {{ default (include "fluentd.fullname" .) .Values.serviceAccount.name }}
+{{- else -}}
+ {{ default "default" .Values.serviceAccount.name }}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Shortened version of the releaseName, applied as a suffix to numerous resources.
+*/}}
+{{- define "fluentd.shortReleaseName" -}}
+{{- .Release.Name | trunc 35 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Name of the configMap used for the fluentd.conf configuration file; allows users to override the default.
+*/}}
+{{- define "fluentd.mainConfigMapName" -}}
+{{- if .Values.mainConfigMapNameOverride -}}
+ {{ .Values.mainConfigMapNameOverride }}
+{{- else -}}
+ {{ printf "%s-%s" "fluentd-main" ( include "fluentd.shortReleaseName" . ) }}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Name of the configMap used for additional configuration files; allows users to override the default.
+*/}}
+{{- define "fluentd.extraFilesConfigMapName" -}}
+{{- if .Values.extraFilesConfigMapNameOverride -}}
+ {{ printf "%s" .Values.extraFilesConfigMapNameOverride }}
+{{- else -}}
+ {{ printf "%s-%s" "fluentd-config" ( include "fluentd.shortReleaseName" . ) }}
+{{- end -}}
+{{- end -}}
+
+{{/*
+HPA ApiVersion according k8s version
+Check legacy first so helm template / kustomize will default to latest version
+*/}}
+{{- define "fluentd.hpa.apiVersion" -}}
+{{- if and (.Capabilities.APIVersions.Has "autoscaling/v2beta2") (semverCompare "<1.23-0" .Capabilities.KubeVersion.GitVersion) -}}
+autoscaling/v2beta2
+{{- else -}}
+autoscaling/v2
+{{- end -}}
+{{- end -}}
\ No newline at end of file
diff --git a/charts/kubezero-telemetry/charts/fluentd/templates/_pod.tpl b/charts/kubezero-telemetry/charts/fluentd/templates/_pod.tpl
new file mode 100644
index 00000000..e285e3a8
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/templates/_pod.tpl
@@ -0,0 +1,130 @@
+{{- define "fluentd.pod" -}}
+{{- $defaultTag := printf "%s-debian-%s-1.0" (.Chart.AppVersion) (.Values.variant) -}}
+{{- with .Values.imagePullSecrets }}
+imagePullSecrets:
+ {{- toYaml . | nindent 2 }}
+{{- end }}
+{{- if .Values.priorityClassName }}
+priorityClassName: {{ .Values.priorityClassName }}
+{{- end }}
+serviceAccountName: {{ include "fluentd.serviceAccountName" . }}
+securityContext:
+ {{- toYaml .Values.podSecurityContext | nindent 2 }}
+{{- with .Values.terminationGracePeriodSeconds }}
+terminationGracePeriodSeconds: {{ . }}
+{{- end }}
+{{- with .Values.initContainers }}
+initContainers:
+ {{- toYaml . | nindent 2 }}
+{{- end }}
+containers:
+ - name: {{ .Chart.Name }}
+ securityContext:
+ {{- toYaml .Values.securityContext | nindent 6 }}
+ image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default $defaultTag }}"
+ imagePullPolicy: {{ .Values.image.pullPolicy }}
+ {{- if .Values.plugins }}
+ command:
+ - "/bin/sh"
+ - "-c"
+ - |
+ {{- range $plugin := .Values.plugins }}
+ {{- print "fluent-gem install " $plugin | nindent 6 }}
+ {{- end }}
+ exec /fluentd/entrypoint.sh
+ {{- end }}
+ env:
+ - name: FLUENTD_CONF
+ value: "../../../etc/fluent/fluent.conf"
+ {{- if .Values.env }}
+ {{- toYaml .Values.env | nindent 4 }}
+ {{- end }}
+ {{- if .Values.envFrom }}
+ envFrom:
+ {{- toYaml .Values.envFrom | nindent 4 }}
+ {{- end }}
+ ports:
+ - name: metrics
+ containerPort: 24231
+ protocol: TCP
+ {{- range $port := .Values.service.ports }}
+ - name: {{ $port.name }}
+ containerPort: {{ $port.containerPort }}
+ protocol: {{ $port.protocol }}
+ {{- end }}
+ {{- with .Values.lifecycle }}
+ lifecycle:
+ {{- toYaml . | nindent 6 }}
+ {{- end }}
+ livenessProbe:
+ {{- toYaml .Values.livenessProbe | nindent 6 }}
+ readinessProbe:
+ {{- toYaml .Values.readinessProbe | nindent 6 }}
+ resources:
+ {{- toYaml .Values.resources | nindent 8 }}
+ volumeMounts:
+ - name: etcfluentd-main
+ mountPath: /etc/fluent
+ - name: etcfluentd-config
+ mountPath: /etc/fluent/config.d/
+ {{- if .Values.mountVarLogDirectory }}
+ - name: varlog
+ mountPath: /var/log
+ {{- end }}
+ {{- if .Values.mountDockerContainersDirectory }}
+ - name: varlibdockercontainers
+ mountPath: /var/lib/docker/containers
+ readOnly: true
+ {{- end }}
+ {{- if .Values.volumeMounts -}}
+ {{- toYaml .Values.volumeMounts | nindent 4 }}
+ {{- end -}}
+ {{- range $key := .Values.configMapConfigs }}
+ {{- print "- name: " $key | nindent 4 }}
+ {{- print "mountPath: /etc/fluent/" $key ".d" | nindent 6 }}
+ {{- end }}
+ {{- if .Values.persistence.enabled }}
+ - mountPath: /var/log/fluent
+ name: {{ include "fluentd.fullname" . }}-buffer
+ {{- end }}
+volumes:
+- name: etcfluentd-main
+ configMap:
+ name: {{ include "fluentd.mainConfigMapName" . }}
+ defaultMode: 0777
+- name: etcfluentd-config
+ configMap:
+ name: {{ include "fluentd.extraFilesConfigMapName" . }}
+ defaultMode: 0777
+{{- if .Values.mountVarLogDirectory }}
+- name: varlog
+ hostPath:
+ path: /var/log
+{{- end }}
+{{- if .Values.mountDockerContainersDirectory }}
+- name: varlibdockercontainers
+ hostPath:
+ path: /var/lib/docker/containers
+{{- end }}
+{{- if .Values.volumes -}}
+{{- toYaml .Values.volumes | nindent 0 }}
+{{- end -}}
+{{- range $key := .Values.configMapConfigs }}
+{{- print "- name: " $key | nindent 0 }}
+ configMap:
+ {{- print "name: " $key "-" ( include "fluentd.shortReleaseName" $ ) | nindent 4 }}
+ defaultMode: 0777
+{{- end }}
+{{- with .Values.nodeSelector }}
+nodeSelector:
+ {{- toYaml . | nindent 2 }}
+{{- end }}
+{{- with .Values.affinity }}
+affinity:
+ {{- toYaml . | nindent 2 }}
+{{- end }}
+{{- with .Values.tolerations }}
+tolerations:
+ {{- toYaml . | nindent 2 }}
+{{- end }}
+{{- end -}}
diff --git a/charts/kubezero-telemetry/charts/fluentd/templates/clusterrole.yaml b/charts/kubezero-telemetry/charts/fluentd/templates/clusterrole.yaml
new file mode 100644
index 00000000..bc0a5729
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/templates/clusterrole.yaml
@@ -0,0 +1,28 @@
+{{- if .Values.rbac.create -}}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: {{ include "fluentd.fullname" . }}
+ labels:
+ {{- include "fluentd.labels" . | nindent 4 }}
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - pods
+ - namespaces
+ verbs:
+ - get
+ - list
+ - watch
+ {{- if and .Values.podSecurityPolicy.enabled (semverCompare "<1.25-0" .Capabilities.KubeVersion.GitVersion) }}
+ - apiGroups:
+ - policy
+ resourceNames:
+ - {{ include "fluentd.fullname" . }}
+ resources:
+ - podsecuritypolicies
+ verbs:
+ - use
+ {{- end }}
+{{- end -}}
diff --git a/charts/kubezero-telemetry/charts/fluentd/templates/clusterrolebinding.yaml b/charts/kubezero-telemetry/charts/fluentd/templates/clusterrolebinding.yaml
new file mode 100644
index 00000000..dff8cae1
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/templates/clusterrolebinding.yaml
@@ -0,0 +1,16 @@
+{{- if .Values.rbac.create -}}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: {{ include "fluentd.fullname" . }}
+ labels:
+ {{- include "fluentd.labels" . | nindent 4 }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: {{ include "fluentd.fullname" . }}
+subjects:
+ - kind: ServiceAccount
+ name: {{ include "fluentd.serviceAccountName" . }}
+ namespace: {{ .Release.Namespace }}
+{{- end -}}
diff --git a/charts/kubezero-telemetry/charts/fluentd/templates/configmap-dashboards.yaml b/charts/kubezero-telemetry/charts/fluentd/templates/configmap-dashboards.yaml
new file mode 100644
index 00000000..de0d5cf1
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/templates/configmap-dashboards.yaml
@@ -0,0 +1,18 @@
+{{- if .Values.dashboards.enabled -}}
+{{- range $path, $_ := .Files.Glob "dashboards/*.json" }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: dashboard-{{ trimSuffix ".json" (base $path) }}-{{ include "fluentd.shortReleaseName" $ }}
+ namespace: {{ $.Values.dashboards.namespace | default $.Release.Namespace }}
+ labels:
+ {{- include "fluentd.labels" $ | nindent 4 }}
+ {{- range $key, $val := $.Values.dashboards.labels }}
+ {{ $key }}: {{ $val }}
+ {{- end }}
+data:
+ {{ base $path }}: |-
+ {{- $.Files.Get $path | nindent 4 }}
+---
+{{- end }}
+{{- end -}}
diff --git a/charts/kubezero-telemetry/charts/fluentd/templates/daemonset.yaml b/charts/kubezero-telemetry/charts/fluentd/templates/daemonset.yaml
new file mode 100644
index 00000000..1fb6f761
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/templates/daemonset.yaml
@@ -0,0 +1,40 @@
+{{- if eq .Values.kind "DaemonSet" }}
+apiVersion: apps/v1
+kind: DaemonSet
+metadata:
+ name: {{ include "fluentd.fullname" . }}
+ labels:
+ {{- include "fluentd.labels" . | nindent 4 }}
+ {{- with .Values.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ selector:
+ matchLabels:
+ {{- include "fluentd.selectorLabels" . | nindent 6 }}
+ {{- with .Values.updateStrategy }}
+ updateStrategy:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.minReadySeconds }}
+ minReadySeconds: {{ . }}
+ {{- end }}
+ template:
+ metadata:
+ annotations:
+ checksum/config: {{ include (print $.Template.BasePath "/fluentd-configurations-cm.yaml") . | sha256sum }}
+ {{- with .Values.podAnnotations }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ labels:
+ {{- include "fluentd.selectorLabels" . | nindent 8 }}
+ {{- with .Values.podLabels }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ spec:
+ {{- include "fluentd.pod" . | nindent 6 }}
+{{- end }}
diff --git a/charts/kubezero-telemetry/charts/fluentd/templates/deployment.yaml b/charts/kubezero-telemetry/charts/fluentd/templates/deployment.yaml
new file mode 100644
index 00000000..431d2a0e
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/templates/deployment.yaml
@@ -0,0 +1,41 @@
+{{- if eq .Values.kind "Deployment" }}
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: {{ include "fluentd.fullname" . }}
+ labels:
+ {{- include "fluentd.labels" . | nindent 4 }}
+ {{- with .Values.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ replicas: {{ .Values.replicaCount }}
+ {{- with .Values.updateStrategy }}
+ strategy:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ selector:
+ matchLabels:
+ {{- include "fluentd.selectorLabels" . | nindent 6 }}
+ {{- with .Values.minReadySeconds }}
+ minReadySeconds: {{ . }}
+ {{- end }}
+ template:
+ metadata:
+ annotations:
+ checksum/config: {{ include (print $.Template.BasePath "/fluentd-configurations-cm.yaml") . | sha256sum }}
+ {{- with .Values.podAnnotations }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ labels:
+ {{- include "fluentd.selectorLabels" . | nindent 8 }}
+ {{- with .Values.podLabels }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ spec:
+ {{- include "fluentd.pod" . | nindent 6 }}
+{{- end }}
diff --git a/charts/kubezero-telemetry/charts/fluentd/templates/files.conf/prometheus.yaml b/charts/kubezero-telemetry/charts/fluentd/templates/files.conf/prometheus.yaml
new file mode 100644
index 00000000..e063d106
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/templates/files.conf/prometheus.yaml
@@ -0,0 +1,25 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ labels:
+ {{- include "fluentd.labels" . | nindent 4 }}
+ name: fluentd-prometheus-conf-{{ include "fluentd.shortReleaseName" . }}
+data:
+ prometheus.conf: |-
+
+
+
+
+
diff --git a/charts/kubezero-telemetry/charts/fluentd/templates/fluentd-configurations-cm.yaml b/charts/kubezero-telemetry/charts/fluentd/templates/fluentd-configurations-cm.yaml
new file mode 100644
index 00000000..289af6be
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/templates/fluentd-configurations-cm.yaml
@@ -0,0 +1,38 @@
+{{- if not .Values.extraFilesConfigMapNameOverride }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: fluentd-config-{{ include "fluentd.shortReleaseName" . }}
+ labels:
+ {{- include "fluentd.labels" . | nindent 4 }}
+data:
+{{- range $key, $value := .Values.fileConfigs }}
+ {{$key }}: |-
+ {{- $value | nindent 4 }}
+{{- end }}
+{{- end }}
+
+{{- if not .Values.mainConfigMapNameOverride }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: fluentd-main-{{ include "fluentd.shortReleaseName" . }}
+ labels:
+ {{- include "fluentd.labels" . | nindent 4 }}
+data:
+ fluent.conf: |-
+ # do not collect fluentd logs to avoid infinite loops.
+
+
+ @include config.d/*.conf
+ {{- range $key := .Values.configMapConfigs }}
+ {{- print "@include " $key ".d/*" | nindent 4 }}
+ {{- end }}
+{{- end }}
\ No newline at end of file
diff --git a/charts/kubezero-telemetry/charts/fluentd/templates/hpa.yaml b/charts/kubezero-telemetry/charts/fluentd/templates/hpa.yaml
new file mode 100644
index 00000000..f4785662
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/templates/hpa.yaml
@@ -0,0 +1,39 @@
+{{- if and ( eq .Values.kind "Deployment" ) .Values.autoscaling.enabled }}
+apiVersion: {{ include "fluentd.hpa.apiVersion" . }}
+kind: HorizontalPodAutoscaler
+metadata:
+ name: {{ include "fluentd.fullname" . }}
+ labels:
+ {{- include "fluentd.labels" . | nindent 4 }}
+spec:
+ {{- if .Values.autoscaling.behavior }}
+ behavior:
+ {{- toYaml .Values.autoscaling.behavior | nindent 4 }}
+ {{- end }}
+ scaleTargetRef:
+ apiVersion: apps/v1
+ kind: Deployment
+ name: {{ include "fluentd.fullname" . }}
+ minReplicas: {{ .Values.autoscaling.minReplicas }}
+ maxReplicas: {{ .Values.autoscaling.maxReplicas }}
+ metrics:
+ {{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: cpu
+ target:
+ averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
+ type: Utilization
+ {{- end }}
+ {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: memory
+ target:
+ averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
+ type: Utilization
+ {{- end }}
+ {{- if .Values.autoscaling.customRules -}}
+ {{- toYaml .Values.autoscaling.customRules | nindent 4}}
+ {{- end -}}
+{{- end }}
\ No newline at end of file
diff --git a/charts/kubezero-telemetry/charts/fluentd/templates/ingress.yaml b/charts/kubezero-telemetry/charts/fluentd/templates/ingress.yaml
new file mode 100644
index 00000000..e8377138
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/templates/ingress.yaml
@@ -0,0 +1,44 @@
+{{- if .Values.ingress.enabled -}}
+{{- $fullName := include "fluentd.fullname" . -}}
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ name: {{ include "fluentd.fullname" . }}
+ labels:
+ {{- include "fluentd.labels" . | nindent 4 }}
+ {{- with .Values.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.ingress.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ {{- if .Values.ingress.tls }}
+ tls:
+ {{- range .Values.ingress.tls }}
+ - hosts:
+ {{- range .hosts }}
+ - {{ . | quote }}
+ {{- end }}
+ {{- with .secretName }}
+ secretName: {{ . }}
+ {{- end }}
+ {{- end }}
+ {{- end }}
+ rules:
+ {{- range .Values.ingress.hosts }}
+ - http:
+ paths:
+ - path: /
+ pathType: Prefix
+ backend:
+ service:
+ name: {{ $fullName }}
+ port:
+ number: {{ .port }}
+ {{ if .host -}}
+ host: {{ .host | quote }}
+ {{- end -}}
+ {{- end -}}
+{{- end -}}
diff --git a/charts/kubezero-telemetry/charts/fluentd/templates/podsecuritypolicy.yaml b/charts/kubezero-telemetry/charts/fluentd/templates/podsecuritypolicy.yaml
new file mode 100644
index 00000000..f0ebc0ab
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/templates/podsecuritypolicy.yaml
@@ -0,0 +1,42 @@
+{{- if and .Values.podSecurityPolicy.enabled (semverCompare "<1.25-0" .Capabilities.KubeVersion.GitVersion) -}}
+apiVersion: policy/v1beta1
+kind: PodSecurityPolicy
+metadata:
+ name: {{ include "fluentd.fullname" . }}
+ labels:
+ {{- include "fluentd.labels" . | nindent 4 }}
+{{- if .Values.podSecurityPolicy.annotations }}
+ annotations:
+{{ toYaml .Values.podSecurityPolicy.annotations | indent 4 }}
+{{- end }}
+spec:
+ privileged: false
+ allowPrivilegeEscalation: false
+ requiredDropCapabilities:
+ - ALL
+ hostNetwork: false
+ hostIPC: false
+ hostPID: false
+ volumes:
+ - 'configMap'
+ - 'secret'
+ - 'hostPath'
+ {{- if .Values.persistence.enabled }}
+ - 'persistentVolumeClaim'
+ {{- end }}
+ runAsUser:
+ rule: 'RunAsAny'
+ seLinux:
+ rule: 'RunAsAny'
+ supplementalGroups:
+ rule: 'MustRunAs'
+ ranges:
+ - min: 1
+ max: 65535
+ fsGroup:
+ rule: 'MustRunAs'
+ ranges:
+ - min: 1
+ max: 65535
+ readOnlyRootFilesystem: false
+{{- end }}
\ No newline at end of file
diff --git a/charts/kubezero-telemetry/charts/fluentd/templates/prometheusrules.yaml b/charts/kubezero-telemetry/charts/fluentd/templates/prometheusrules.yaml
new file mode 100644
index 00000000..26361b76
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/templates/prometheusrules.yaml
@@ -0,0 +1,21 @@
+{{- if and ( .Capabilities.APIVersions.Has "monitoring.coreos.com/v1" ) .Values.metrics.prometheusRule.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: PrometheusRule
+metadata:
+ name: {{ template "fluentd.fullname" . }}
+ {{- if .Values.metrics.prometheusRule.namespace }}
+ namespace: {{ .Values.metrics.prometheusRule.namespace }}
+ {{- end }}
+ labels:
+ {{- include "fluentd.labels" . | nindent 4 }}
+ {{- with .Values.metrics.prometheusRule.additionalLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ {{- with .Values.metrics.prometheusRule.rules }}
+ groups:
+ - name: {{ template "fluentd.fullname" $ }}
+ rules:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{- end }}
diff --git a/charts/kubezero-telemetry/charts/fluentd/templates/service.yaml b/charts/kubezero-telemetry/charts/fluentd/templates/service.yaml
new file mode 100644
index 00000000..6cf58e6c
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/templates/service.yaml
@@ -0,0 +1,35 @@
+{{- if .Values.service.enabled -}}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ include "fluentd.fullname" . }}
+ labels:
+ {{- include "fluentd.labels" . | nindent 4 }}
+ {{- with .Values.service.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ type: {{ .Values.service.type }}
+ {{- if .Values.service.loadBalancerIP }}
+ loadBalancerIP: {{ .Values.service.loadBalancerIP }}
+ {{- end }}
+ {{- if .Values.service.externalTrafficPolicy }}
+ externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy }}
+ {{- end }}
+ ports:
+ - port: 24231
+ targetPort: metrics
+ protocol: TCP
+ name: metrics
+ {{- if .Values.service.ports }}
+ {{- range $port := .Values.service.ports }}
+ - name: {{ $port.name }}
+ port: {{ $port.containerPort }}
+ targetPort: {{ $port.containerPort }}
+ protocol: {{ $port.protocol }}
+ {{- end }}
+ {{- end }}
+ selector:
+ {{- include "fluentd.selectorLabels" . | nindent 4 }}
+{{- end -}}
diff --git a/charts/kubezero-telemetry/charts/fluentd/templates/serviceaccount.yaml b/charts/kubezero-telemetry/charts/fluentd/templates/serviceaccount.yaml
new file mode 100644
index 00000000..2ff33842
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/templates/serviceaccount.yaml
@@ -0,0 +1,12 @@
+{{- if .Values.serviceAccount.create -}}
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: {{ include "fluentd.serviceAccountName" . }}
+ labels:
+ {{- include "fluentd.labels" . | nindent 4 }}
+ {{- with .Values.serviceAccount.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{- end -}}
diff --git a/charts/kubezero-telemetry/charts/fluentd/templates/servicemonitor.yaml b/charts/kubezero-telemetry/charts/fluentd/templates/servicemonitor.yaml
new file mode 100644
index 00000000..521b6c53
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/templates/servicemonitor.yaml
@@ -0,0 +1,44 @@
+{{- if and ( .Capabilities.APIVersions.Has "monitoring.coreos.com/v1" ) .Values.metrics.serviceMonitor.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: {{ template "fluentd.fullname" . }}
+ {{- with .Values.metrics.serviceMonitor.namespace }}
+ namespace: {{ . }}
+ {{- end }}
+ labels:
+ {{- include "fluentd.labels" . | nindent 4 }}
+ {{- with .Values.metrics.serviceMonitor.additionalLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ jobLabel: {{ .Values.metrics.serviceMonitor.jobLabel | default .Release.Name }}
+ endpoints:
+ - port: metrics
+ path: /metrics
+ {{- with .Values.metrics.serviceMonitor.interval }}
+ interval: {{ . }}
+ {{- end }}
+ {{- with .Values.metrics.serviceMonitor.scrapeTimeout }}
+ scrapeTimeout: {{ . }}
+ {{- end }}
+{{- if .Values.metrics.serviceMonitor.metricRelabelings }}
+ metricRelabelings:
+{{ tpl (toYaml .Values.metrics.serviceMonitor.metricRelabelings | indent 6) . }}
+{{- end }}
+{{- if .Values.metrics.serviceMonitor.relabelings }}
+ relabelings:
+{{ toYaml .Values.metrics.serviceMonitor.relabelings | indent 6 }}
+{{- end }}
+ {{- if .Values.metrics.serviceMonitor.namespaceSelector }}
+ namespaceSelector:
+ {{ toYaml .Values.metrics.serviceMonitor.namespaceSelector | indent 4 -}}
+ {{ else }}
+ namespaceSelector:
+ matchNames:
+ - {{ .Release.Namespace }}
+ {{- end }}
+ selector:
+ matchLabels:
+ {{- include "fluentd.selectorLabels" . | nindent 6 }}
+{{- end }}
diff --git a/charts/kubezero-telemetry/charts/fluentd/templates/statefulset.yaml b/charts/kubezero-telemetry/charts/fluentd/templates/statefulset.yaml
new file mode 100644
index 00000000..5bc22481
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/templates/statefulset.yaml
@@ -0,0 +1,55 @@
+{{- if eq .Values.kind "StatefulSet" }}
+apiVersion: apps/v1
+kind: StatefulSet
+metadata:
+ name: {{ include "fluentd.fullname" . }}
+ labels:
+ {{- include "fluentd.labels" . | nindent 4 }}
+ {{- with .Values.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ replicas: {{ .Values.replicaCount }}
+ serviceName: {{ include "fluentd.fullname" . }}
+ {{- with .Values.updateStrategy }}
+ updateStrategy:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ selector:
+ matchLabels:
+ {{- include "fluentd.selectorLabels" . | nindent 6 }}
+ {{- with .Values.minReadySeconds }}
+ minReadySeconds: {{ . }}
+ {{- end }}
+ template:
+ metadata:
+ annotations:
+ checksum/config: {{ include (print $.Template.BasePath "/fluentd-configurations-cm.yaml") . | sha256sum }}
+ {{- with .Values.podAnnotations }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ labels:
+ {{- include "fluentd.selectorLabels" . | nindent 8 }}
+ {{- with .Values.podLabels }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ spec:
+ {{- include "fluentd.pod" . | nindent 6 }}
+ {{- if or .Values.persistence.enabled }}
+ volumeClaimTemplates:
+ {{- if or .Values.persistence.enabled }}
+ - metadata:
+ name: {{ include "fluentd.fullname" . }}-buffer
+ spec:
+ accessModes: [{{ .Values.persistence.accessMode }}]
+ resources:
+ requests:
+ storage: {{ .Values.persistence.size }}
+ storageClassName: {{ .Values.persistence.storageClass }}
+ {{- end }}
+ {{- end }}
+{{- end }}
diff --git a/charts/kubezero-telemetry/charts/fluentd/templates/tests/test-connection.yaml b/charts/kubezero-telemetry/charts/fluentd/templates/tests/test-connection.yaml
new file mode 100644
index 00000000..2b07ec4f
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/templates/tests/test-connection.yaml
@@ -0,0 +1,29 @@
+{{/*
+Target the very simple case where
+fluentd is deployed with the default values
+If the fluentd config is overriden and the metrics server removed
+this will fail.
+*/}}
+{{ if empty .Values.service.ports }}
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "{{ include "fluentd.fullname" . }}-test-connection"
+ labels:
+ {{- include "fluentd.labels" . | nindent 4 }}
+ annotations:
+ "helm.sh/hook": test-success
+spec:
+ containers:
+ - name: wget
+ image: busybox
+ command:
+ - sh
+ - -c
+ - |
+ set -e
+ # Give fluentd some time to start up
+ while :; do nc -vz {{ include "fluentd.fullname" . }}:24231 && break; sleep 1; done
+ wget '{{ include "fluentd.fullname" . }}:24231/metrics'
+ restartPolicy: Never
+{{ end }}
\ No newline at end of file
diff --git a/charts/kubezero-telemetry/charts/fluentd/values.yaml b/charts/kubezero-telemetry/charts/fluentd/values.yaml
new file mode 100644
index 00000000..ac05f8b2
--- /dev/null
+++ b/charts/kubezero-telemetry/charts/fluentd/values.yaml
@@ -0,0 +1,403 @@
+nameOverride: ""
+fullnameOverride: ""
+
+# DaemonSet, Deployment or StatefulSet
+kind: "DaemonSet"
+# azureblob, cloudwatch, elasticsearch7, elasticsearch8, gcs, graylog , kafka, kafka2, kinesis, opensearch
+variant: elasticsearch7
+# # Only applicable for Deployment or StatefulSet
+# replicaCount: 1
+
+image:
+ repository: "fluent/fluentd-kubernetes-daemonset"
+ pullPolicy: "IfNotPresent"
+ tag: ""
+
+## Optional array of imagePullSecrets containing private registry credentials
+## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
+imagePullSecrets: []
+
+serviceAccount:
+ create: true
+ annotations: {}
+ name: null
+
+rbac:
+ create: true
+
+# from Kubernetes 1.25, PSP is deprecated
+# See: https://kubernetes.io/blog/2022/08/23/kubernetes-v1-25-release/#pod-security-changes
+# We automatically disable PSP if Kubernetes version is 1.25 or higher
+podSecurityPolicy:
+ enabled: true
+ annotations: {}
+
+## Security Context policies for controller pods
+## See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for
+## notes on enabling and using sysctls
+##
+podSecurityContext: {}
+ # seLinuxOptions:
+ # type: "spc_t"
+
+securityContext: {}
+ # capabilities:
+ # drop:
+ # - ALL
+ # readOnlyRootFilesystem: true
+ # runAsNonRoot: true
+ # runAsUser: 1000
+
+# Configure the livecycle
+# Ref: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/
+lifecycle: {}
+ # preStop:
+ # exec:
+ # command: ["/bin/sh", "-c", "sleep 20"]
+
+# Configure the livenessProbe
+# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
+livenessProbe:
+ httpGet:
+ path: /metrics
+ port: metrics
+ # initialDelaySeconds: 0
+ # periodSeconds: 10
+ # timeoutSeconds: 1
+ # successThreshold: 1
+ # failureThreshold: 3
+
+# Configure the readinessProbe
+# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
+readinessProbe:
+ httpGet:
+ path: /metrics
+ port: metrics
+ # initialDelaySeconds: 0
+ # periodSeconds: 10
+ # timeoutSeconds: 1
+ # successThreshold: 1
+ # failureThreshold: 3
+
+resources: {}
+ # requests:
+ # cpu: 10m
+ # memory: 128Mi
+ # limits:
+ # memory: 128Mi
+
+## only available if kind is Deployment
+autoscaling:
+ enabled: false
+ minReplicas: 1
+ maxReplicas: 100
+ targetCPUUtilizationPercentage: 80
+ # targetMemoryUtilizationPercentage: 80
+ ## see https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/#autoscaling-on-multiple-metrics-and-custom-metrics
+ customRules: []
+ # - type: Pods
+ # pods:
+ # metric:
+ # name: packets-per-second
+ # target:
+ # type: AverageValue
+ # averageValue: 1k
+ ## see https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-configurable-scaling-behavior
+ # behavior:
+ # scaleDown:
+ # policies:
+ # - type: Pods
+ # value: 4
+ # periodSeconds: 60
+ # - type: Percent
+ # value: 10
+ # periodSeconds: 60
+
+# priorityClassName: "system-node-critical"
+
+nodeSelector: {}
+
+## Node tolerations for server scheduling to nodes with taints
+## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
+##
+tolerations: []
+# - key: null
+# operator: Exists
+# effect: "NoSchedule"
+
+## Affinity and anti-affinity
+## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
+##
+affinity: {}
+
+## Annotations to be added to fluentd DaemonSet/Deployment
+##
+annotations: {}
+
+## Labels to be added to fluentd DaemonSet/Deployment
+##
+labels: {}
+
+## Annotations to be added to fluentd pods
+##
+podAnnotations: {}
+
+## Labels to be added to fluentd pods
+##
+podLabels: {}
+
+## How long (in seconds) a pods needs to be stable before progressing the deployment
+##
+minReadySeconds:
+
+## How long (in seconds) a pod may take to exit (useful with lifecycle hooks to ensure lb deregistration is done)
+##
+terminationGracePeriodSeconds:
+
+## Deployment strategy / DaemonSet updateStrategy
+##
+updateStrategy: {}
+# type: RollingUpdate
+# rollingUpdate:
+# maxUnavailable: 1
+
+## Additional environment variables to set for fluentd pods
+env: []
+ # - name: "FLUENTD_CONF"
+ # value: "../../../etc/fluent/fluent.conf"
+ # - name: FLUENT_ELASTICSEARCH_HOST
+ # value: "elasticsearch-master"
+ # - name: FLUENT_ELASTICSEARCH_PORT
+ # value: "9200"
+
+envFrom: []
+
+initContainers: []
+
+## Name of the configMap containing a custom fluentd.conf configuration file to use instead of the default.
+# mainConfigMapNameOverride: ""
+
+## Name of the configMap containing files to be placed under /etc/fluent/config.d/
+## NOTE: This will replace ALL default files in the aforementioned path!
+# extraFilesConfigMapNameOverride: ""
+
+mountVarLogDirectory: true
+mountDockerContainersDirectory: true
+
+volumes: []
+
+volumeMounts: []
+
+## Only available if kind is StatefulSet
+## Fluentd persistence
+##
+persistence:
+ enabled: false
+ storageClass: ""
+ accessMode: ReadWriteOnce
+ size: 10Gi
+
+## Fluentd service
+##
+service:
+ enabled: true
+ type: "ClusterIP"
+ annotations: {}
+ # loadBalancerIP:
+ # externalTrafficPolicy: Local
+ ports: []
+ # - name: "forwarder"
+ # protocol: TCP
+ # containerPort: 24224
+
+## Prometheus Monitoring
+##
+metrics:
+ serviceMonitor:
+ enabled: false
+ additionalLabels:
+ release: prometheus-operator
+ namespace: ""
+ namespaceSelector: {}
+ ## metric relabel configs to apply to samples before ingestion.
+ ##
+ metricRelabelings: []
+ # - sourceLabels: [__name__]
+ # separator: ;
+ # regex: ^fluentd_output_status_buffer_(oldest|newest)_.+
+ # replacement: $1
+ # action: drop
+ ## relabel configs to apply to samples after ingestion.
+ ##
+ relabelings: []
+ # - sourceLabels: [__meta_kubernetes_pod_node_name]
+ # separator: ;
+ # regex: ^(.*)$
+ # targetLabel: nodename
+ # replacement: $1
+ # action: replace
+ ## Additional serviceMonitor config
+ ##
+ # jobLabel: fluentd
+ # scrapeInterval: 30s
+ # scrapeTimeout: 5s
+ # honorLabels: true
+
+ prometheusRule:
+ enabled: false
+ additionalLabels: {}
+ namespace: ""
+ rules: []
+ # - alert: FluentdDown
+ # expr: up{job="fluentd"} == 0
+ # for: 5m
+ # labels:
+ # context: fluentd
+ # severity: warning
+ # annotations:
+ # summary: "Fluentd Down"
+ # description: "{{ $labels.pod }} on {{ $labels.nodename }} is down"
+ # - alert: FluentdScrapeMissing
+ # expr: absent(up{job="fluentd"} == 1)
+ # for: 15m
+ # labels:
+ # context: fluentd
+ # severity: warning
+ # annotations:
+ # summary: "Fluentd Scrape Missing"
+ # description: "Fluentd instance has disappeared from Prometheus target discovery"
+
+## Grafana Monitoring Dashboard
+##
+dashboards:
+ enabled: "true"
+ namespace: ""
+ labels:
+ grafana_dashboard: '"1"'
+
+## Fluentd list of plugins to install
+##
+plugins: []
+# - fluent-plugin-out-http
+
+## Add fluentd config files from K8s configMaps
+##
+configMapConfigs: []
+# - fluentd-prometheus-conf
+# - fluentd-systemd-conf
+
+## Fluentd configurations:
+##
+fileConfigs:
+ 01_sources.conf: |-
+ ## logs from podman
+
+
+ # expose metrics in prometheus format
+
+
+ 02_filters.conf: |-
+
+
+ 03_dispatch.conf: |-
+
+
+ 04_outputs.conf: |-
+
+
+ingress:
+ enabled: false
+ annotations: {}
+ # kubernetes.io/ingress.class: nginx
+ # kubernetes.io/tls-acme: "true"
+ hosts:
+ # - host: fluentd.example.tld
+ - port: 9880
+
+ tls: []
+ # - secretName: fluentd-tls
+ # hosts:
+ # - fluentd.example.tld
diff --git a/charts/kubezero-telemetry/dashboards.yaml b/charts/kubezero-telemetry/dashboards.yaml
index 52b8cb71..cdba4fa4 100644
--- a/charts/kubezero-telemetry/dashboards.yaml
+++ b/charts/kubezero-telemetry/dashboards.yaml
@@ -12,3 +12,10 @@ dashboards:
tags:
- OpenSearch
- Telemetry
+- name: fluent-logging
+ url: https://grafana.com/api/dashboards/7752/revisions/6/download
+ #url: https://grafana.com/api/dashboards/13042/revisions/2/download
+ tags:
+ - fluentd
+ - fluent-bit
+ - Telemetry
diff --git a/charts/kubezero-telemetry/templates/grafana-dashboards.yaml b/charts/kubezero-telemetry/templates/grafana-dashboards.yaml
index 1b0f760f..6174cc01 100644
--- a/charts/kubezero-telemetry/templates/grafana-dashboards.yaml
+++ b/charts/kubezero-telemetry/templates/grafana-dashboards.yaml
@@ -13,3 +13,5 @@ binaryData:
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
opensearch.json.gz:
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
+ fluent-logging.json.gz:
+ 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
diff --git a/charts/kubezero-telemetry/update.sh b/charts/kubezero-telemetry/update.sh
index f015a765..26638f48 100755
--- a/charts/kubezero-telemetry/update.sh
+++ b/charts/kubezero-telemetry/update.sh
@@ -3,9 +3,20 @@ set -ex
. ../../scripts/lib-update.sh
-../kubezero-metrics/sync_grafana_dashboards.py dashboards.yaml templates/grafana-dashboards.yaml
-
#login_ecr_public
update_helm
+#FLUENT_BIT_VERSION=$(yq eval '.dependencies[] | select(.name=="fluent-bit") | .version' Chart.yaml)
+FLUENTD_VERSION=$(yq eval '.dependencies[] | select(.name=="fluentd") | .version' Chart.yaml)
+
+# fluent-bit
+#patch_chart fluent-bit
+
+# FluentD
+patch_chart fluentd
+rm -f charts/fluentd/templates/files.conf/systemd.yaml
+
+# Fetch dashboards from Grafana.com and update ZDT CM
+../kubezero-metrics/sync_grafana_dashboards.py dashboards.yaml templates/grafana-dashboards.yaml
+
update_docs