diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index ca3fce25722..3c321f4043c 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -196,6 +196,9 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add mixer metricset for Istio Metricbeat module {pull}15696[15696] - Add mesh metricset for Istio Metricbeat module{pull}15535[15535] - Add pilot metricset for Istio Metricbeat module {pull}15761[15761] +- Make the `system/cpu` metricset collect normalized CPU metrics by default. {issue}15618[15618] {pull}15729[15729] +- Add galley metricset for Istio Metricbeat module {pull}15857[15857] +- Add `key/value` mode for SQL module. {issue}15770[15770] {pull]15845[15845] - Add STAN dashboard {pull}15654[15654] - Add `key/value` mode for SQL module. {issue}15770[15770] {pull]15845[15845] - Add support for Unix socket in Memcached metricbeat module. {issue}13685[13685] {pull}15822[15822] diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index a2b11484fb4..3ee47b57f77 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -16602,6 +16602,337 @@ istio Module +[float] +=== galley + +Contains statistics related to the Istio galley service + + + +*`istio.galley.name`*:: ++ +-- +The name of the resource the metric is related to + + +type: keyword + +-- + +*`istio.galley.namespace`*:: ++ +-- +The Kubernetes namespace of the resource + + +type: keyword + +-- + +*`istio.galley.version`*:: ++ +-- +The version of the object + + +type: keyword + +-- + +*`istio.galley.collection`*:: ++ +-- +The collection of the instance + + +type: keyword + +-- + +*`istio.galley.istio.authentication.meshpolicies`*:: ++ +-- +The number of valid istio/authentication/meshpolicies known to galley at a point in time + + +type: long + +-- + +*`istio.galley.istio.authentication.policies`*:: ++ +-- +The number of valid istio/authentication/policies known to galley at a point in time + + +type: long + +-- + +*`istio.galley.istio.mesh.MeshConfig`*:: ++ +-- +The number of valid istio/mesh/MeshConfig known to galley at a point in time + + +type: long + +-- + +*`istio.galley.istio.networking.destinationrules`*:: ++ +-- +The number of valid istio/networking/destinationrules known to galley at a point in time + + +type: long + +-- + +*`istio.galley.istio.networking.envoyfilters`*:: ++ +-- +The number of valid istio/networking/envoyfilters known to galley at a point in time + + +type: long + +-- + +*`istio.galley.istio.networking.gateways`*:: ++ +-- +The number of valid istio/networking/gateways known to galley at a point in time + + +type: long + +-- + +*`istio.galley.istio.networking.sidecars`*:: ++ +-- +The number of valid istio/networking/sidecars known to galley at a point in time + + +type: long + +-- + +*`istio.galley.istio.networking.virtualservices`*:: ++ +-- +The number of valid istio/networking/virtualservices known to galley at a point in time + + +type: long + +-- + +*`istio.galley.istio.policy.attributemanifests`*:: ++ +-- +The number of valid istio/policy/attributemanifests known to galley at a point in time + + +type: long + +-- + +*`istio.galley.istio.policy.handlers`*:: ++ +-- +The number of valid istio/policy/handlers known to galley at a point in time + + +type: long + +-- + +*`istio.galley.istio.policy.instances`*:: ++ +-- +The number of valid istio/policy/instances known to galley at a point in time + + +type: long + +-- + +*`istio.galley.istio.policy.rules`*:: ++ +-- +The number of valid istio/policy/rules known to galley at a point in time + + +type: long + +-- + +*`istio.galley.runtime.processor.event_span.duration.ms.bucket.*`*:: ++ +-- +The duration between each incoming event as histogram buckets in milliseconds + + +type: object + +-- + +*`istio.galley.runtime.processor.event_span.duration.ms.sum`*:: ++ +-- +The duration between each incoming event, sum of durations in milliseconds + + +type: long + +format: duration + +-- + +*`istio.galley.runtime.processor.event_span.duration.ms.count`*:: ++ +-- +The duration between each incoming event, number of metrics + + +type: long + +-- + +*`istio.galley.runtime.processor.snapshot_events.bucket.*`*:: ++ +-- +The number of events that have been processed as histogram buckets + + +type: object + +-- + +*`istio.galley.runtime.processor.snapshot_events.sum`*:: ++ +-- +The number of events that have been processed, sum of events + + +type: long + +-- + +*`istio.galley.runtime.processor.snapshot_events.count`*:: ++ +-- +The duration between each incoming event, number of metrics + + +type: long + +-- + +*`istio.galley.runtime.processor.snapshot_lifetime.duration.ms.bucket.*`*:: ++ +-- +The duration of each snapshot as histogram buckets in milliseconds + + +type: object + +-- + +*`istio.galley.runtime.processor.snapshot_lifetime.duration.ms.sum`*:: ++ +-- +The duration of each snapshot, sum of durations in milliseconds + + +type: long + +format: duration + +-- + +*`istio.galley.runtime.processor.snapshot_lifetime.duration.ms.count`*:: ++ +-- +The duration of each snapshot, number of metrics + + +type: long + +-- + +*`istio.galley.runtime.state_type_instances`*:: ++ +-- +The number of type instances per type URL + + +type: long + +-- + +*`istio.galley.runtime.strategy.on_change`*:: ++ +-- +The number of times the strategy's onChange has been called + + +type: long + +-- + +*`istio.galley.runtime.strategy.timer_quiesce_reached`*:: ++ +-- +The number of times a quiesce has been reached + + +type: long + +-- + +*`istio.galley.source_kube_event_success_total`*:: ++ +-- +The number of times a kubernetes source successfully handled an event + + +type: long + +-- + +*`istio.galley.validation.cert_key.updates`*:: ++ +-- +Galley validation webhook certificate updates + + +type: long + +-- + +*`istio.galley.validation.config.load`*:: ++ +-- +k8s webhook configuration (re)loads + + +type: long + +-- + +*`istio.galley.validation.config.updates`*:: ++ +-- +k8s webhook configuration updates + + +type: long + +-- + [float] === mesh diff --git a/metricbeat/docs/modules/istio.asciidoc b/metricbeat/docs/modules/istio.asciidoc index 0a6a404a734..34da877c4b3 100644 --- a/metricbeat/docs/modules/istio.asciidoc +++ b/metricbeat/docs/modules/istio.asciidoc @@ -11,7 +11,7 @@ beta[] This is the Istio module. The Istio module collects metrics from the Istio https://istio.io/docs/tasks/observability/metrics/querying-metrics/#about-the-prometheus-add-on[prometheus exporters endpoints]. -The default metricsets are `mesh`, `mixer`, `pilot`. +The default metricsets are `mesh`, `mixer`, `pilot`, `galley`. [float] === Compatibility @@ -28,25 +28,32 @@ in <>. Here is an example configuration: [source,yaml] ---- metricbeat.modules: -# Istio mesh. To collect all all Mixer-generated metrics +# Istio mesh. To collect all Mixer-generated metrics - module: istio metricsets: ["mesh"] period: 10s - # use istio-telemetry.istio-system:42422, when deploying Metricbeat in a kuberentes cluster as Pod or Daemonset + # use istio-telemetry.istio-system:42422, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset hosts: ["localhost:42422"] # Istio mixer. To monitor Mixer itself. - module: istio metricsets: ["mixer"] period: 10s - # use istio-telemetry.istio-system:15014, when deploying Metricbeat in a kuberentes cluster as Pod or Daemonset + # use istio-telemetry.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset + hosts: ["localhost:15014"] + +# Istio galley. To collect all Galley-generated metrics +- module: istio + metricsets: ["galley"] + period: 10s + # use istio-galley.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset hosts: ["localhost:15014"] # Istio pilot. To collect all Pilot-generated metrics. - module: istio metricsets: ["pilot"] period: 10s - # use istio-pilot.istio-system:15014, when deploying Metricbeat in a kuberentes cluster as Pod or Daemonset + # use istio-pilot.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset hosts: ["localhost:15014"] ---- @@ -55,12 +62,16 @@ metricbeat.modules: The following metricsets are available: +* <> + * <> * <> * <> +include::istio/galley.asciidoc[] + include::istio/mesh.asciidoc[] include::istio/mixer.asciidoc[] diff --git a/metricbeat/docs/modules/istio/galley.asciidoc b/metricbeat/docs/modules/istio/galley.asciidoc new file mode 100644 index 00000000000..6fbd197f8f8 --- /dev/null +++ b/metricbeat/docs/modules/istio/galley.asciidoc @@ -0,0 +1,23 @@ +//// +This file is generated! See scripts/mage/docs_collector.go +//// + +[[metricbeat-metricset-istio-galley]] +=== istio galley metricset + +beta[] + +include::../../../../x-pack/metricbeat/module/istio/galley/_meta/docs.asciidoc[] + + +==== Fields + +For a description of each field in the metricset, see the +<> section. + +Here is an example document generated by this metricset: + +[source,json] +---- +include::../../../../x-pack/metricbeat/module/istio/galley/_meta/data.json[] +---- diff --git a/metricbeat/docs/modules_list.asciidoc b/metricbeat/docs/modules_list.asciidoc index 082aeaea6fb..a003501e651 100644 --- a/metricbeat/docs/modules_list.asciidoc +++ b/metricbeat/docs/modules_list.asciidoc @@ -104,7 +104,8 @@ This file is generated! See scripts/mage/docs_collector.go |<> beta[] |image:./images/icon-yes.png[Prebuilt dashboards are available] | .1+| .1+| |<> beta[] |<> beta[] |image:./images/icon-no.png[No prebuilt dashboards] | -.3+| .3+| |<> beta[] +.4+| .4+| |<> beta[] +|<> beta[] |<> beta[] |<> beta[] |<> |image:./images/icon-no.png[No prebuilt dashboards] | diff --git a/x-pack/metricbeat/include/list.go b/x-pack/metricbeat/include/list.go index e85f81e6f15..258d5444f8d 100644 --- a/x-pack/metricbeat/include/list.go +++ b/x-pack/metricbeat/include/list.go @@ -30,6 +30,7 @@ import ( _ "github.com/elastic/beats/x-pack/metricbeat/module/googlecloud/stackdriver" _ "github.com/elastic/beats/x-pack/metricbeat/module/ibmmq" _ "github.com/elastic/beats/x-pack/metricbeat/module/istio" + _ "github.com/elastic/beats/x-pack/metricbeat/module/istio/galley" _ "github.com/elastic/beats/x-pack/metricbeat/module/istio/mesh" _ "github.com/elastic/beats/x-pack/metricbeat/module/istio/mixer" _ "github.com/elastic/beats/x-pack/metricbeat/module/istio/pilot" diff --git a/x-pack/metricbeat/metricbeat.reference.yml b/x-pack/metricbeat/metricbeat.reference.yml index e67b91c09bb..ad236eb5f78 100644 --- a/x-pack/metricbeat/metricbeat.reference.yml +++ b/x-pack/metricbeat/metricbeat.reference.yml @@ -488,25 +488,32 @@ metricbeat.modules: metrics_path: /metrics #-------------------------------- Istio Module -------------------------------- -# Istio mesh. To collect all all Mixer-generated metrics +# Istio mesh. To collect all Mixer-generated metrics - module: istio metricsets: ["mesh"] period: 10s - # use istio-telemetry.istio-system:42422, when deploying Metricbeat in a kuberentes cluster as Pod or Daemonset + # use istio-telemetry.istio-system:42422, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset hosts: ["localhost:42422"] # Istio mixer. To monitor Mixer itself. - module: istio metricsets: ["mixer"] period: 10s - # use istio-telemetry.istio-system:15014, when deploying Metricbeat in a kuberentes cluster as Pod or Daemonset + # use istio-telemetry.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset + hosts: ["localhost:15014"] + +# Istio galley. To collect all Galley-generated metrics +- module: istio + metricsets: ["galley"] + period: 10s + # use istio-galley.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset hosts: ["localhost:15014"] # Istio pilot. To collect all Pilot-generated metrics. - module: istio metricsets: ["pilot"] period: 10s - # use istio-pilot.istio-system:15014, when deploying Metricbeat in a kuberentes cluster as Pod or Daemonset + # use istio-pilot.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset hosts: ["localhost:15014"] #------------------------------- Jolokia Module ------------------------------- diff --git a/x-pack/metricbeat/module/istio/_meta/config.reference.yml b/x-pack/metricbeat/module/istio/_meta/config.reference.yml index 57f5a9190ff..9274eefce25 100644 --- a/x-pack/metricbeat/module/istio/_meta/config.reference.yml +++ b/x-pack/metricbeat/module/istio/_meta/config.reference.yml @@ -1,20 +1,27 @@ -# Istio mesh. To collect all all Mixer-generated metrics +# Istio mesh. To collect all Mixer-generated metrics - module: istio metricsets: ["mesh"] period: 10s - # use istio-telemetry.istio-system:42422, when deploying Metricbeat in a kuberentes cluster as Pod or Daemonset + # use istio-telemetry.istio-system:42422, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset hosts: ["localhost:42422"] # Istio mixer. To monitor Mixer itself. - module: istio metricsets: ["mixer"] period: 10s - # use istio-telemetry.istio-system:15014, when deploying Metricbeat in a kuberentes cluster as Pod or Daemonset + # use istio-telemetry.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset + hosts: ["localhost:15014"] + +# Istio galley. To collect all Galley-generated metrics +- module: istio + metricsets: ["galley"] + period: 10s + # use istio-galley.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset hosts: ["localhost:15014"] # Istio pilot. To collect all Pilot-generated metrics. - module: istio metricsets: ["pilot"] period: 10s - # use istio-pilot.istio-system:15014, when deploying Metricbeat in a kuberentes cluster as Pod or Daemonset + # use istio-pilot.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset hosts: ["localhost:15014"] diff --git a/x-pack/metricbeat/module/istio/_meta/config.yml b/x-pack/metricbeat/module/istio/_meta/config.yml index 3179a94d061..9274eefce25 100644 --- a/x-pack/metricbeat/module/istio/_meta/config.yml +++ b/x-pack/metricbeat/module/istio/_meta/config.yml @@ -1,20 +1,27 @@ -# Istio mesh. To collect all all Mixer-generated metrics +# Istio mesh. To collect all Mixer-generated metrics - module: istio metricsets: ["mesh"] period: 10s - # use istio-telemetry.istio-system:42422, when deploying Metricbeat in a kuberentes cluster + # use istio-telemetry.istio-system:42422, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset hosts: ["localhost:42422"] # Istio mixer. To monitor Mixer itself. - module: istio metricsets: ["mixer"] period: 10s - # use istio-telemetry.istio-system:15014, when deploying Metricbeat in a kuberentes cluster + # use istio-telemetry.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset + hosts: ["localhost:15014"] + +# Istio galley. To collect all Galley-generated metrics +- module: istio + metricsets: ["galley"] + period: 10s + # use istio-galley.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset hosts: ["localhost:15014"] # Istio pilot. To collect all Pilot-generated metrics. - module: istio metricsets: ["pilot"] period: 10s - # use istio-pilot.istio-system:15014, when deploying Metricbeat in a kuberentes cluster + # use istio-pilot.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset hosts: ["localhost:15014"] diff --git a/x-pack/metricbeat/module/istio/_meta/docs.asciidoc b/x-pack/metricbeat/module/istio/_meta/docs.asciidoc index eda158d03f6..8d2abd1f962 100644 --- a/x-pack/metricbeat/module/istio/_meta/docs.asciidoc +++ b/x-pack/metricbeat/module/istio/_meta/docs.asciidoc @@ -1,7 +1,7 @@ This is the Istio module. The Istio module collects metrics from the Istio https://istio.io/docs/tasks/observability/metrics/querying-metrics/#about-the-prometheus-add-on[prometheus exporters endpoints]. -The default metricsets are `mesh`, `mixer`, `pilot`. +The default metricsets are `mesh`, `mixer`, `pilot`, `galley`. [float] === Compatibility diff --git a/x-pack/metricbeat/module/istio/fields.go b/x-pack/metricbeat/module/istio/fields.go index e3c845676e8..bc96c9a8b59 100644 --- a/x-pack/metricbeat/module/istio/fields.go +++ b/x-pack/metricbeat/module/istio/fields.go @@ -19,5 +19,5 @@ func init() { // AssetIstio returns asset data. // This is the base64 encoded gzipped contents of module/istio. func AssetIstio() string { - return "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" + return "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" } diff --git a/x-pack/metricbeat/module/istio/galley/_meta/data.json b/x-pack/metricbeat/module/istio/galley/_meta/data.json new file mode 100644 index 00000000000..eef36b0aed5 --- /dev/null +++ b/x-pack/metricbeat/module/istio/galley/_meta/data.json @@ -0,0 +1,24 @@ +{ + "@timestamp": "2019-03-01T08:05:34.853Z", + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "collection": "istio/networking/v1alpha3/envoyfilters", + "runtime": { + "state_type_instances": 1 + } + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } +} \ No newline at end of file diff --git a/x-pack/metricbeat/module/istio/galley/_meta/docs.asciidoc b/x-pack/metricbeat/module/istio/galley/_meta/docs.asciidoc new file mode 100644 index 00000000000..03ea6014656 --- /dev/null +++ b/x-pack/metricbeat/module/istio/galley/_meta/docs.asciidoc @@ -0,0 +1 @@ +This is the galley metricset of the module istio. This metricset collects Galley-specific metrics. diff --git a/x-pack/metricbeat/module/istio/galley/_meta/fields.yml b/x-pack/metricbeat/module/istio/galley/_meta/fields.yml new file mode 100644 index 00000000000..df9e6f29c00 --- /dev/null +++ b/x-pack/metricbeat/module/istio/galley/_meta/fields.yml @@ -0,0 +1,145 @@ +- name: galley + type: group + description: > + Contains statistics related to the Istio galley service + release: beta + fields: + - name: name + type: keyword + description: > + The name of the resource the metric is related to + - name: namespace + type: keyword + description: > + The Kubernetes namespace of the resource + - name: version + type: keyword + description: > + The version of the object + - name: collection + type: keyword + description: > + The collection of the instance + + - name: istio.authentication.meshpolicies + type: long + description: > + The number of valid istio/authentication/meshpolicies known to galley at a point in time + - name: istio.authentication.policies + type: long + description: > + The number of valid istio/authentication/policies known to galley at a point in time + - name: istio.mesh.MeshConfig + type: long + description: > + The number of valid istio/mesh/MeshConfig known to galley at a point in time + - name: istio.networking.destinationrules + type: long + description: > + The number of valid istio/networking/destinationrules known to galley at a point in time + - name: istio.networking.envoyfilters + type: long + description: > + The number of valid istio/networking/envoyfilters known to galley at a point in time + - name: istio.networking.gateways + type: long + description: > + The number of valid istio/networking/gateways known to galley at a point in time + - name: istio.networking.sidecars + type: long + description: > + The number of valid istio/networking/sidecars known to galley at a point in time + - name: istio.networking.virtualservices + type: long + description: > + The number of valid istio/networking/virtualservices known to galley at a point in time + - name: istio.policy.attributemanifests + type: long + description: > + The number of valid istio/policy/attributemanifests known to galley at a point in time + - name: istio.policy.handlers + type: long + description: > + The number of valid istio/policy/handlers known to galley at a point in time + - name: istio.policy.instances + type: long + description: > + The number of valid istio/policy/instances known to galley at a point in time + - name: istio.policy.rules + type: long + description: > + The number of valid istio/policy/rules known to galley at a point in time + + + - name: runtime.processor.event_span.duration.ms.bucket.* + type: object + object_type: long + description: > + The duration between each incoming event as histogram buckets in milliseconds + - name: runtime.processor.event_span.duration.ms.sum + type: long + format: duration + description: > + The duration between each incoming event, sum of durations in milliseconds + - name: runtime.processor.event_span.duration.ms.count + type: long + description: > + The duration between each incoming event, number of metrics + + - name: runtime.processor.snapshot_events.bucket.* + type: object + object_type: long + description: > + The number of events that have been processed as histogram buckets + - name: runtime.processor.snapshot_events.sum + type: long + description: > + The number of events that have been processed, sum of events + - name: runtime.processor.snapshot_events.count + type: long + description: > + The duration between each incoming event, number of metrics + + - name: runtime.processor.snapshot_lifetime.duration.ms.bucket.* + type: object + object_type: long + description: > + The duration of each snapshot as histogram buckets in milliseconds + - name: runtime.processor.snapshot_lifetime.duration.ms.sum + type: long + format: duration + description: > + The duration of each snapshot, sum of durations in milliseconds + - name: runtime.processor.snapshot_lifetime.duration.ms.count + type: long + description: > + The duration of each snapshot, number of metrics + + - name: runtime.state_type_instances + type: long + description: > + The number of type instances per type URL + - name: runtime.strategy.on_change + type: long + description: > + The number of times the strategy's onChange has been called + - name: runtime.strategy.timer_quiesce_reached + type: long + description: > + The number of times a quiesce has been reached + - name: source_kube_event_success_total + type: long + description: > + The number of times a kubernetes source successfully handled an event + - name: validation.cert_key.updates + type: long + description: > + Galley validation webhook certificate updates + - name: validation.config.load + type: long + description: > + k8s webhook configuration (re)loads + - name: validation.config.updates + type: long + description: > + k8s webhook configuration updates diff --git a/x-pack/metricbeat/module/istio/galley/_meta/testdata/config.yml b/x-pack/metricbeat/module/istio/galley/_meta/testdata/config.yml new file mode 100644 index 00000000000..ab6bf241654 --- /dev/null +++ b/x-pack/metricbeat/module/istio/galley/_meta/testdata/config.yml @@ -0,0 +1,3 @@ +type: http +url: "/metrics" +suffix: plain diff --git a/x-pack/metricbeat/module/istio/galley/_meta/testdata/docs.plain b/x-pack/metricbeat/module/istio/galley/_meta/testdata/docs.plain new file mode 100644 index 00000000000..12d079fcf2c --- /dev/null +++ b/x-pack/metricbeat/module/istio/galley/_meta/testdata/docs.plain @@ -0,0 +1,156 @@ +# HELP galley_istio_authentication_meshpolicies The number of valid istio/authentication/meshpolicies known to galley at a point in time +# TYPE galley_istio_authentication_meshpolicies gauge +galley_istio_authentication_meshpolicies{name="default",namespace="",version="v1alpha1"} 1 +# HELP galley_istio_authentication_policies The number of valid istio/authentication/policies known to galley at a point in time +# TYPE galley_istio_authentication_policies gauge +galley_istio_authentication_policies{name="grafana-ports-mtls-disabled",namespace="istio-system",version="v1alpha1"} 1 +# HELP galley_istio_mesh_MeshConfig The number of valid istio/mesh/MeshConfig known to galley at a point in time +# TYPE galley_istio_mesh_MeshConfig gauge +galley_istio_mesh_MeshConfig{name="meshconfig",namespace="istio-system",version="v1alpha1"} 1 +# HELP galley_istio_networking_destinationrules The number of valid istio/networking/destinationrules known to galley at a point in time +# TYPE galley_istio_networking_destinationrules gauge +galley_istio_networking_destinationrules{name="istio-multicluster-destinationrule",namespace="istio-system",version="v1alpha3"} 1 +galley_istio_networking_destinationrules{name="istio-policy",namespace="istio-system",version="v1alpha3"} 1 +galley_istio_networking_destinationrules{name="istio-telemetry",namespace="istio-system",version="v1alpha3"} 1 +# HELP galley_istio_networking_envoyfilters The number of valid istio/networking/envoyfilters known to galley at a point in time +# TYPE galley_istio_networking_envoyfilters gauge +galley_istio_networking_envoyfilters{name="istio-multicluster-egressgateway",namespace="istio-system",version="v1alpha3"} 1 +# HELP galley_istio_networking_gateways The number of valid istio/networking/gateways known to galley at a point in time +# TYPE galley_istio_networking_gateways gauge +galley_istio_networking_gateways{name="bookinfo-gateway",namespace="default",version="v1alpha3"} 1 +galley_istio_networking_gateways{name="ingressgateway",namespace="istio-system",version="v1alpha3"} 1 +galley_istio_networking_gateways{name="istio-multicluster-egressgateway",namespace="istio-system",version="v1alpha3"} 1 +# HELP galley_istio_networking_sidecars The number of valid istio/networking/sidecars known to galley at a point in time +# TYPE galley_istio_networking_sidecars gauge +galley_istio_networking_sidecars{name="default",namespace="istio-system",version="v1alpha3"} 1 +# HELP galley_istio_networking_virtualservices The number of valid istio/networking/virtualservices known to galley at a point in time +# TYPE galley_istio_networking_virtualservices gauge +galley_istio_networking_virtualservices{name="bookinfo",namespace="default",version="v1alpha3"} 1 +galley_istio_networking_virtualservices{name="istio-multicluster-egressgateway",namespace="istio-system",version="v1alpha3"} 1 +# HELP galley_istio_policy_attributemanifests The number of valid istio/policy/attributemanifests known to galley at a point in time +# TYPE galley_istio_policy_attributemanifests gauge +galley_istio_policy_attributemanifests{name="istioproxy",namespace="istio-system",version="v1beta1"} 1 +galley_istio_policy_attributemanifests{name="kubernetes",namespace="istio-system",version="v1beta1"} 1 +# HELP galley_istio_policy_handlers The number of valid istio/policy/handlers known to galley at a point in time +# TYPE galley_istio_policy_handlers gauge +galley_istio_policy_handlers{name="kubernetesenv",namespace="istio-system",version="v1beta1"} 1 +galley_istio_policy_handlers{name="prometheus",namespace="istio-system",version="v1beta1"} 1 +galley_istio_policy_handlers{name="stdio",namespace="istio-system",version="v1beta1"} 1 +# HELP galley_istio_policy_instances The number of valid istio/policy/instances known to galley at a point in time +# TYPE galley_istio_policy_instances gauge +galley_istio_policy_instances{name="accesslog",namespace="istio-system",version="v1beta1"} 1 +galley_istio_policy_instances{name="attributes",namespace="istio-system",version="v1beta1"} 1 +galley_istio_policy_instances{name="requestcount",namespace="istio-system",version="v1beta1"} 1 +galley_istio_policy_instances{name="requestduration",namespace="istio-system",version="v1beta1"} 1 +galley_istio_policy_instances{name="requestsize",namespace="istio-system",version="v1beta1"} 1 +galley_istio_policy_instances{name="responsesize",namespace="istio-system",version="v1beta1"} 1 +galley_istio_policy_instances{name="tcpaccesslog",namespace="istio-system",version="v1beta1"} 1 +galley_istio_policy_instances{name="tcpbytereceived",namespace="istio-system",version="v1beta1"} 1 +galley_istio_policy_instances{name="tcpbytesent",namespace="istio-system",version="v1beta1"} 1 +galley_istio_policy_instances{name="tcpconnectionsclosed",namespace="istio-system",version="v1beta1"} 1 +galley_istio_policy_instances{name="tcpconnectionsopened",namespace="istio-system",version="v1beta1"} 1 +# HELP galley_istio_policy_rules The number of valid istio/policy/rules known to galley at a point in time +# TYPE galley_istio_policy_rules gauge +galley_istio_policy_rules{name="kubeattrgenrulerule",namespace="istio-system",version="v1beta1"} 1 +galley_istio_policy_rules{name="promhttp",namespace="istio-system",version="v1beta1"} 1 +galley_istio_policy_rules{name="promtcp",namespace="istio-system",version="v1beta1"} 1 +galley_istio_policy_rules{name="promtcpconnectionclosed",namespace="istio-system",version="v1beta1"} 1 +galley_istio_policy_rules{name="promtcpconnectionopen",namespace="istio-system",version="v1beta1"} 1 +galley_istio_policy_rules{name="stdio",namespace="istio-system",version="v1beta1"} 1 +galley_istio_policy_rules{name="stdiotcp",namespace="istio-system",version="v1beta1"} 1 +galley_istio_policy_rules{name="tcpkubeattrgenrulerule",namespace="istio-system",version="v1beta1"} 1 +# HELP galley_runtime_processor_event_span_duration_milliseconds The duration between each incoming event +# TYPE galley_runtime_processor_event_span_duration_milliseconds histogram +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="0"} 0 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="1"} 65 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="2"} 69 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="4"} 71 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="8"} 71 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="16"} 72 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="32"} 75 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="64"} 80 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="128"} 90 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="256"} 99 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="512"} 99 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="1024"} 99 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="2048"} 99 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="4096"} 99 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="8193"} 99 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="16384"} 99 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="32768"} 99 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="65536"} 99 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="131072"} 99 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="262144"} 99 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="524288"} 99 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="1.048576e+06"} 99 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="2.097152e+06"} 99 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="4.194304e+06"} 99 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="8.388608e+06"} 99 +galley_runtime_processor_event_span_duration_milliseconds_bucket{le="+Inf"} 99 +galley_runtime_processor_event_span_duration_milliseconds_sum 2784.0000000000005 +galley_runtime_processor_event_span_duration_milliseconds_count 99 +# HELP galley_runtime_processor_events_processed_total The number of events that have been processed +# TYPE galley_runtime_processor_events_processed_total counter +galley_runtime_processor_events_processed_total 99 +# HELP galley_runtime_processor_snapshot_events_total The number of events per snapshot +# TYPE galley_runtime_processor_snapshot_events_total histogram +galley_runtime_processor_snapshot_events_total_bucket{le="0"} 0 +galley_runtime_processor_snapshot_events_total_bucket{le="1"} 0 +galley_runtime_processor_snapshot_events_total_bucket{le="2"} 0 +galley_runtime_processor_snapshot_events_total_bucket{le="4"} 0 +galley_runtime_processor_snapshot_events_total_bucket{le="8"} 0 +galley_runtime_processor_snapshot_events_total_bucket{le="16"} 0 +galley_runtime_processor_snapshot_events_total_bucket{le="32"} 0 +galley_runtime_processor_snapshot_events_total_bucket{le="64"} 2 +galley_runtime_processor_snapshot_events_total_bucket{le="128"} 2 +galley_runtime_processor_snapshot_events_total_bucket{le="256"} 2 +galley_runtime_processor_snapshot_events_total_bucket{le="+Inf"} 2 +galley_runtime_processor_snapshot_events_total_sum 99 +galley_runtime_processor_snapshot_events_total_count 2 +# HELP galley_runtime_processor_snapshot_lifetime_duration_milliseconds The duration of each snapshot +# TYPE galley_runtime_processor_snapshot_lifetime_duration_milliseconds histogram +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="0"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="1"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="2"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="4"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="8"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="16"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="32"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="64"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="128"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="256"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="512"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="1024"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="2048"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="4096"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="8193"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="16384"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="32768"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="65536"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="131072"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="262144"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="524288"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="1.048576e+06"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="2.097152e+06"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="4.194304e+06"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="8.388608e+06"} 0 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_bucket{le="+Inf"} 2 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_sum 1.8446744073708e+13 +galley_runtime_processor_snapshot_lifetime_duration_milliseconds_count 2 +# HELP galley_runtime_processor_snapshots_published_total The number of snapshots that have been published +# TYPE galley_runtime_processor_snapshots_published_total counter +galley_runtime_processor_snapshots_published_total 2 +# HELP galley_runtime_state_type_instances_total The number of type instances per type URL +# TYPE galley_runtime_state_type_instances_total gauge +galley_runtime_state_type_instances_total{collection="istio/authentication/v1alpha1/meshpolicies"} 1 +galley_runtime_state_type_instances_total{collection="istio/authentication/v1alpha1/policies"} 1 +galley_runtime_state_type_instances_total{collection="istio/mesh/v1alpha1/MeshConfig"} 1 +galley_runtime_state_type_instances_total{collection="istio/networking/v1alpha3/destinationrules"} 3 +galley_runtime_state_type_instances_total{collection="istio/networking/v1alpha3/envoyfilters"} 1 +galley_runtime_state_type_instances_total{collection="istio/networking/v1alpha3/gateways"} 3 +galley_runtime_state_type_instances_total{collection="istio/networking/v1alpha3/sidecars"} 1 +galley_runtime_state_type_instances_total{collection="istio/networking/v1alpha3/virtualservices"} 2 +galley_runtime_state_type_instances_total{collection="istio/policy/v1beta1/attributemanifests"} 2 +galley_runtime_state_type_instances_total{collection="istio/policy/v1beta1/handlers"} 3 +galley_runtime_state_type_instances_total{collection="istio/policy/v1beta1/instances"} 11 +galley_runtime_state_type_instances_total{collection="istio/policy/v1beta1/rules"} 8 diff --git a/x-pack/metricbeat/module/istio/galley/_meta/testdata/docs.plain-expected.json b/x-pack/metricbeat/module/istio/galley/_meta/testdata/docs.plain-expected.json new file mode 100644 index 00000000000..609bae2dfd7 --- /dev/null +++ b/x-pack/metricbeat/module/istio/galley/_meta/testdata/docs.plain-expected.json @@ -0,0 +1,1310 @@ +[ + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "collection": "istio/networking/v1alpha3/envoyfilters", + "runtime": { + "state_type_instances": 1 + } + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "networking": { + "virtualservices": 1 + } + }, + "name": "bookinfo", + "namespace": "default", + "version": "v1alpha3" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "instances": 1 + } + }, + "name": "tcpconnectionsclosed", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "collection": "istio/policy/v1beta1/attributemanifests", + "runtime": { + "state_type_instances": 2 + } + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "authentication": { + "policies": 1 + } + }, + "name": "grafana-ports-mtls-disabled", + "namespace": "istio-system", + "version": "v1alpha1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "attributemanifests": 1 + } + }, + "name": "kubernetes", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "collection": "istio/networking/v1alpha3/virtualservices", + "runtime": { + "state_type_instances": 2 + } + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "networking": { + "envoyfilters": 1, + "gateways": 1, + "virtualservices": 1 + } + }, + "name": "istio-multicluster-egressgateway", + "namespace": "istio-system", + "version": "v1alpha3" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "mesh": { + "MeshConfig": 1 + } + }, + "name": "meshconfig", + "namespace": "istio-system", + "version": "v1alpha1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "collection": "istio/networking/v1alpha3/sidecars", + "runtime": { + "state_type_instances": 1 + } + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "instances": 1 + } + }, + "name": "tcpbytesent", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "collection": "istio/authentication/v1alpha1/meshpolicies", + "runtime": { + "state_type_instances": 1 + } + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "rules": 1 + } + }, + "name": "promtcpconnectionclosed", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "rules": 1 + } + }, + "name": "promtcp", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "handlers": 1 + } + }, + "name": "kubernetesenv", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "attributemanifests": 1 + } + }, + "name": "istioproxy", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "networking": { + "gateways": 1 + } + }, + "name": "bookinfo-gateway", + "namespace": "default", + "version": "v1alpha3" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "networking": { + "destinationrules": 1 + } + }, + "name": "istio-telemetry", + "namespace": "istio-system", + "version": "v1alpha3" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "collection": "istio/policy/v1beta1/rules", + "runtime": { + "state_type_instances": 8 + } + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "collection": "istio/authentication/v1alpha1/policies", + "runtime": { + "state_type_instances": 1 + } + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "collection": "istio/networking/v1alpha3/gateways", + "runtime": { + "state_type_instances": 3 + } + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "rules": 1 + } + }, + "name": "kubeattrgenrulerule", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "rules": 1 + } + }, + "name": "promtcpconnectionopen", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "instances": 1 + } + }, + "name": "requestduration", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "collection": "istio/policy/v1beta1/handlers", + "runtime": { + "state_type_instances": 3 + } + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "collection": "istio/networking/v1alpha3/destinationrules", + "runtime": { + "state_type_instances": 3 + } + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "authentication": { + "meshpolicies": 1 + } + }, + "name": "default", + "version": "v1alpha1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "instances": 1 + } + }, + "name": "attributes", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "networking": { + "sidecars": 1 + } + }, + "name": "default", + "namespace": "istio-system", + "version": "v1alpha3" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "networking": { + "destinationrules": 1 + } + }, + "name": "istio-policy", + "namespace": "istio-system", + "version": "v1alpha3" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "rules": 1 + } + }, + "name": "stdiotcp", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "collection": "istio/policy/v1beta1/instances", + "runtime": { + "state_type_instances": 11 + } + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "instances": 1 + } + }, + "name": "tcpaccesslog", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "instances": 1 + } + }, + "name": "tcpbytereceived", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "handlers": 1, + "rules": 1 + } + }, + "name": "stdio", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "instances": 1 + } + }, + "name": "accesslog", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "instances": 1 + } + }, + "name": "tcpconnectionsopened", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "rules": 1 + } + }, + "name": "tcpkubeattrgenrulerule", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "instances": 1 + } + }, + "name": "requestsize", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "collection": "istio/mesh/v1alpha1/MeshConfig", + "runtime": { + "state_type_instances": 1 + } + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "networking": { + "gateways": 1 + } + }, + "name": "ingressgateway", + "namespace": "istio-system", + "version": "v1alpha3" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "rules": 1 + } + }, + "name": "promhttp", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "handlers": 1 + } + }, + "name": "prometheus", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "instances": 1 + } + }, + "name": "responsesize", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "runtime": { + "processor": { + "event_span": { + "duration": { + "ms": { + "bucket": { + "+Inf": 99, + "0": 0, + "1": 65, + "1024": 99, + "1048576": 99, + "128": 90, + "131072": 99, + "16": 72, + "16384": 99, + "2": 69, + "2048": 99, + "2097152": 99, + "256": 99, + "262144": 99, + "32": 75, + "32768": 99, + "4": 71, + "4096": 99, + "4194304": 99, + "512": 99, + "524288": 99, + "64": 80, + "65536": 99, + "8": 71, + "8193": 99, + "8388608": 99 + }, + "count": 99, + "sum": 2784.0000000000005 + } + } + }, + "snapshot_events": { + "bucket": { + "+Inf": 2, + "0": 0, + "1": 0, + "128": 2, + "16": 0, + "2": 0, + "256": 2, + "32": 0, + "4": 0, + "64": 2, + "8": 0 + }, + "count": 2, + "sum": 99 + }, + "snapshot_lifetime": { + "duration": { + "ms": { + "bucket": { + "+Inf": 2, + "0": 0, + "1": 0, + "1024": 0, + "1048576": 0, + "128": 0, + "131072": 0, + "16": 0, + "16384": 0, + "2": 0, + "2048": 0, + "2097152": 0, + "256": 0, + "262144": 0, + "32": 0, + "32768": 0, + "4": 0, + "4096": 0, + "4194304": 0, + "512": 0, + "524288": 0, + "64": 0, + "65536": 0, + "8": 0, + "8193": 0, + "8388608": 0 + }, + "count": 2, + "sum": 18446744073708 + } + } + } + } + } + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "networking": { + "destinationrules": 1 + } + }, + "name": "istio-multicluster-destinationrule", + "namespace": "istio-system", + "version": "v1alpha3" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.galley", + "duration": 115000, + "module": "istio" + }, + "istio": { + "galley": { + "istio": { + "policy": { + "instances": 1 + } + }, + "name": "requestcount", + "namespace": "istio-system", + "version": "v1beta1" + } + }, + "metricset": { + "name": "galley", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + } +] \ No newline at end of file diff --git a/x-pack/metricbeat/module/istio/galley/galley.go b/x-pack/metricbeat/module/istio/galley/galley.go new file mode 100644 index 00000000000..72976943ee6 --- /dev/null +++ b/x-pack/metricbeat/module/istio/galley/galley.go @@ -0,0 +1,63 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +package galley + +import ( + "github.com/elastic/beats/metricbeat/helper/prometheus" + "github.com/elastic/beats/metricbeat/mb" + "github.com/elastic/beats/metricbeat/mb/parse" +) + +const ( + defaultScheme = "http" + defaultPath = "/metrics" +) + +var ( + hostParser = parse.URLHostParserBuilder{ + DefaultScheme: defaultScheme, + DefaultPath: defaultPath, + }.Build() +) + +var mapping = &prometheus.MetricsMapping{ + Metrics: map[string]prometheus.MetricMap{ + "galley_istio_authentication_meshpolicies": prometheus.Metric("istio.authentication.meshpolicies"), + "galley_istio_authentication_policies": prometheus.Metric("istio.authentication.policies"), + "galley_istio_mesh_MeshConfig": prometheus.Metric("istio.mesh.MeshConfig"), + "galley_istio_networking_destinationrules": prometheus.Metric("istio.networking.destinationrules"), + "galley_istio_networking_envoyfilters": prometheus.Metric("istio.networking.envoyfilters"), + "galley_istio_networking_gateways": prometheus.Metric("istio.networking.gateways"), + "galley_istio_networking_sidecars": prometheus.Metric("istio.networking.sidecars"), + "galley_istio_networking_virtualservices": prometheus.Metric("istio.networking.virtualservices"), + "galley_istio_policy_attributemanifests": prometheus.Metric("istio.policy.attributemanifests"), + "galley_istio_policy_handlers": prometheus.Metric("istio.policy.handlers"), + "galley_istio_policy_instances": prometheus.Metric("istio.policy.instances"), + "galley_istio_policy_rules": prometheus.Metric("istio.policy.rules"), + "galley_runtime_processor_event_span_duration_milliseconds": prometheus.Metric("runtime.processor.event_span.duration.ms"), + "galley_runtime_processor_snapshot_events_total": prometheus.Metric("runtime.processor.snapshot_events"), + "galley_runtime_processor_snapshot_lifetime_duration_milliseconds": prometheus.Metric("runtime.processor.snapshot_lifetime.duration.ms"), + "galley_runtime_state_type_instances_total": prometheus.Metric("runtime.state_type_instances"), + "galley_runtime_strategy_on_change_total": prometheus.Metric("runtime.strategy.on_change"), + "galley_runtime_strategy_timer_quiesce_reached_total": prometheus.Metric("runtime.strategy.timer_quiesce_reached"), + "galley_source_kube_event_success_total": prometheus.Metric("source_kube_event_success_total"), + "galley_validation_cert_key_updates": prometheus.Metric("validation.cert_key.updates"), + "galley_validation_config_load": prometheus.Metric("validation.config.load"), + "galley_validation_config_updates": prometheus.Metric("validation.config.updates"), + }, + + Labels: map[string]prometheus.LabelMap{ + "name": prometheus.KeyLabel("name"), + "namespace": prometheus.KeyLabel("namespace"), + "version": prometheus.KeyLabel("version"), + "collection": prometheus.KeyLabel("collection"), + }, +} + +func init() { + mb.Registry.MustAddMetricSet("istio", "galley", + prometheus.MetricSetBuilder(mapping), + mb.WithHostParser(hostParser)) +} diff --git a/x-pack/metricbeat/module/istio/galley/galley_test.go b/x-pack/metricbeat/module/istio/galley/galley_test.go new file mode 100644 index 00000000000..87d3537fdf2 --- /dev/null +++ b/x-pack/metricbeat/module/istio/galley/galley_test.go @@ -0,0 +1,19 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +// +build !integration + +package galley + +import ( + "testing" + + mbtest "github.com/elastic/beats/metricbeat/mb/testing" + + _ "github.com/elastic/beats/x-pack/metricbeat/module/istio" +) + +func TestData(t *testing.T) { + mbtest.TestDataFiles(t, "istio", "galley") +} diff --git a/x-pack/metricbeat/module/istio/mixer/mixer.go b/x-pack/metricbeat/module/istio/mixer/mixer.go index 7c5eb7bce5d..bbf150eeb32 100644 --- a/x-pack/metricbeat/module/istio/mixer/mixer.go +++ b/x-pack/metricbeat/module/istio/mixer/mixer.go @@ -2,7 +2,7 @@ // or more contributor license agreements. Licensed under the Elastic License; // you may not use this file except in compliance with the Elastic License. -package mesh +package mixer import ( "github.com/elastic/beats/metricbeat/helper/prometheus" diff --git a/x-pack/metricbeat/module/istio/mixer/mixer_test.go b/x-pack/metricbeat/module/istio/mixer/mixer_test.go index 8c10083423e..a50267040a0 100644 --- a/x-pack/metricbeat/module/istio/mixer/mixer_test.go +++ b/x-pack/metricbeat/module/istio/mixer/mixer_test.go @@ -4,7 +4,7 @@ // +build !integration -package mesh +package mixer import ( "testing" diff --git a/x-pack/metricbeat/module/istio/pilot/_meta/data.json b/x-pack/metricbeat/module/istio/pilot/_meta/data.json index 46444b9e226..56abc740809 100644 --- a/x-pack/metricbeat/module/istio/pilot/_meta/data.json +++ b/x-pack/metricbeat/module/istio/pilot/_meta/data.json @@ -23,4 +23,4 @@ "address": "127.0.0.1:55555", "type": "istio" } -} +} \ No newline at end of file diff --git a/x-pack/metricbeat/modules.d/istio.yml.disabled b/x-pack/metricbeat/modules.d/istio.yml.disabled index 07b3d1365ac..a590ad5898b 100644 --- a/x-pack/metricbeat/modules.d/istio.yml.disabled +++ b/x-pack/metricbeat/modules.d/istio.yml.disabled @@ -1,23 +1,30 @@ # Module: istio # Docs: https://www.elastic.co/guide/en/beats/metricbeat/7.x/metricbeat-module-istio.html -# Istio mesh. To collect all all Mixer-generated metrics +# Istio mesh. To collect all Mixer-generated metrics - module: istio metricsets: ["mesh"] period: 10s - # use istio-telemetry.istio-system:42422, when deploying Metricbeat in a kuberentes cluster + # use istio-telemetry.istio-system:42422, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset hosts: ["localhost:42422"] # Istio mixer. To monitor Mixer itself. - module: istio metricsets: ["mixer"] period: 10s - # use istio-telemetry.istio-system:15014, when deploying Metricbeat in a kuberentes cluster + # use istio-telemetry.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset + hosts: ["localhost:15014"] + +# Istio galley. To collect all Galley-generated metrics +- module: istio + metricsets: ["galley"] + period: 10s + # use istio-galley.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset hosts: ["localhost:15014"] # Istio pilot. To collect all Pilot-generated metrics. - module: istio metricsets: ["pilot"] period: 10s - # use istio-pilot.istio-system:15014, when deploying Metricbeat in a kuberentes cluster + # use istio-pilot.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset hosts: ["localhost:15014"]