From e9b0be37cad69af25e3560d422027f26804fe618 Mon Sep 17 00:00:00 2001 From: Chris Mark Date: Mon, 3 Feb 2020 16:45:42 +0200 Subject: [PATCH] Add citadel metricset for Istio Metricbeat module (#15990) --- CHANGELOG.next.asciidoc | 1 + metricbeat/docs/fields.asciidoc | 129 ++++++++++++ metricbeat/docs/modules/istio.asciidoc | 13 +- .../docs/modules/istio/citadel.asciidoc | 23 ++ metricbeat/docs/modules_list.asciidoc | 3 +- x-pack/metricbeat/include/list.go | 1 + x-pack/metricbeat/metricbeat.reference.yml | 7 + .../module/istio/_meta/config.reference.yml | 7 + .../metricbeat/module/istio/_meta/config.yml | 7 + .../module/istio/_meta/docs.asciidoc | 2 +- .../module/istio/citadel/_meta/data.json | 24 +++ .../module/istio/citadel/_meta/docs.asciidoc | 1 + .../module/istio/citadel/_meta/fields.yml | 59 ++++++ .../istio/citadel/_meta/testdata/config.yml | 3 + .../istio/citadel/_meta/testdata/docs.plain | 198 ++++++++++++++++++ .../_meta/testdata/docs.plain-expected.json | 133 ++++++++++++ .../module/istio/citadel/citadel.go | 47 +++++ .../module/istio/citadel/citadel_test.go | 19 ++ x-pack/metricbeat/module/istio/fields.go | 2 +- .../metricbeat/modules.d/istio.yml.disabled | 7 + 20 files changed, 682 insertions(+), 4 deletions(-) create mode 100644 metricbeat/docs/modules/istio/citadel.asciidoc create mode 100644 x-pack/metricbeat/module/istio/citadel/_meta/data.json create mode 100644 x-pack/metricbeat/module/istio/citadel/_meta/docs.asciidoc create mode 100644 x-pack/metricbeat/module/istio/citadel/_meta/fields.yml create mode 100644 x-pack/metricbeat/module/istio/citadel/_meta/testdata/config.yml create mode 100644 x-pack/metricbeat/module/istio/citadel/_meta/testdata/docs.plain create mode 100644 x-pack/metricbeat/module/istio/citadel/_meta/testdata/docs.plain-expected.json create mode 100644 x-pack/metricbeat/module/istio/citadel/citadel.go create mode 100644 x-pack/metricbeat/module/istio/citadel/citadel_test.go diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index e0f6a96090c..e582a713282 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -127,6 +127,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add `key/value` mode for SQL module. {issue}15770[15770] {pull]15845[15845] - Add STAN dashboard {pull}15654[15654] - Add support for Unix socket in Memcached metricbeat module. {issue}13685[13685] {pull}15822[15822] +- Add citadel metricset for Istio Metricbeat module {pull}15990[15990] - Add support for processors in light modules. {issue}14740[14740] {pull}15923[15923] *Packetbeat* diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index 6b81f8035c1..d8c82bd80e5 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -16602,6 +16602,135 @@ istio Module +[float] +=== citadel + +Contains statistics related to the Istio Citadel service + + + +*`istio.citadel.grpc.method`*:: ++ +-- +The grpc method + + +type: keyword + +-- + +*`istio.citadel.grpc.service`*:: ++ +-- +The grpc service + + +type: keyword + +-- + +*`istio.citadel.grpc.type`*:: ++ +-- +The type of the respective grpc service + + +type: keyword + +-- + +*`istio.citadel.secret_controller_svc_acc_created_cert.count`*:: ++ +-- +The number of certificates created due to service account creation. + + +type: long + +-- + +*`istio.citadel.server_root_cert_expiry_seconds`*:: ++ +-- +The unix timestamp, in seconds, when Citadel root cert will expire. We set it to negative in case of internal error. + + +type: float + +-- + +*`istio.citadel.grpc.server.handled`*:: ++ +-- +Total number of RPCs completed on the server, regardless of success or failure. + + +type: long + +-- + +*`istio.citadel.grpc.server.msg.received`*:: ++ +-- +Total number of RPC stream messages received on the server. + + +type: long + +-- + +*`istio.citadel.grpc.server.msg.sent`*:: ++ +-- +Total number of gRPC stream messages sent by the server. + + +type: long + +-- + +*`istio.citadel.grpc.server.started`*:: ++ +-- +Total number of RPCs started on the server. + + +type: long + +-- + +*`istio.citadel.grpc.server.handling.latency.ms.bucket.*`*:: ++ +-- +The response latency (milliseconds) of gRPC that had been application-level handled by the server. + + +type: object + +-- + +*`istio.citadel.grpc.server.handling.latency.ms.sum`*:: ++ +-- +The response latency of gRPC, sum of latencies in milliseconds + + +type: long + +format: duration + +-- + +*`istio.citadel.grpc.server.handling.latency.ms.count`*:: ++ +-- +The response latency of gRPC, number of metrics + + +type: long + +-- + [float] === galley diff --git a/metricbeat/docs/modules/istio.asciidoc b/metricbeat/docs/modules/istio.asciidoc index 34da877c4b3..f14af129164 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`, `galley`. +The default metricsets are `mesh`, `mixer`, `pilot`, `galley`, `citadel`. [float] === Compatibility @@ -55,6 +55,13 @@ metricbeat.modules: period: 10s # use istio-pilot.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset hosts: ["localhost:15014"] + +# Istio citadel. To collect all Citadel-generated metrics. +- module: istio + metricsets: ["citadel"] + period: 10s + # use istio-pilot.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset + hosts: ["localhost:15014"] ---- [float] @@ -62,6 +69,8 @@ metricbeat.modules: The following metricsets are available: +* <> + * <> * <> @@ -70,6 +79,8 @@ The following metricsets are available: * <> +include::istio/citadel.asciidoc[] + include::istio/galley.asciidoc[] include::istio/mesh.asciidoc[] diff --git a/metricbeat/docs/modules/istio/citadel.asciidoc b/metricbeat/docs/modules/istio/citadel.asciidoc new file mode 100644 index 00000000000..898ad156bd1 --- /dev/null +++ b/metricbeat/docs/modules/istio/citadel.asciidoc @@ -0,0 +1,23 @@ +//// +This file is generated! See scripts/mage/docs_collector.go +//// + +[[metricbeat-metricset-istio-citadel]] +=== istio citadel metricset + +beta[] + +include::../../../../x-pack/metricbeat/module/istio/citadel/_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/citadel/_meta/data.json[] +---- diff --git a/metricbeat/docs/modules_list.asciidoc b/metricbeat/docs/modules_list.asciidoc index e2bad54d7bf..010c9c40b9f 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] | -.4+| .4+| |<> beta[] +.5+| .5+| |<> beta[] +|<> beta[] |<> beta[] |<> beta[] |<> beta[] diff --git a/x-pack/metricbeat/include/list.go b/x-pack/metricbeat/include/list.go index 258d5444f8d..590accfd862 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/citadel" _ "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" diff --git a/x-pack/metricbeat/metricbeat.reference.yml b/x-pack/metricbeat/metricbeat.reference.yml index ad236eb5f78..d5dbb673d11 100644 --- a/x-pack/metricbeat/metricbeat.reference.yml +++ b/x-pack/metricbeat/metricbeat.reference.yml @@ -516,6 +516,13 @@ metricbeat.modules: # use istio-pilot.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset hosts: ["localhost:15014"] +# Istio citadel. To collect all Citadel-generated metrics. +- module: istio + metricsets: ["citadel"] + period: 10s + # use istio-pilot.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset + hosts: ["localhost:15014"] + #------------------------------- Jolokia Module ------------------------------- - module: jolokia #metricsets: ["jmx"] diff --git a/x-pack/metricbeat/module/istio/_meta/config.reference.yml b/x-pack/metricbeat/module/istio/_meta/config.reference.yml index 9274eefce25..c3e940f80e5 100644 --- a/x-pack/metricbeat/module/istio/_meta/config.reference.yml +++ b/x-pack/metricbeat/module/istio/_meta/config.reference.yml @@ -25,3 +25,10 @@ period: 10s # use istio-pilot.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset hosts: ["localhost:15014"] + +# Istio citadel. To collect all Citadel-generated metrics. +- module: istio + metricsets: ["citadel"] + period: 10s + # 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 9274eefce25..c3e940f80e5 100644 --- a/x-pack/metricbeat/module/istio/_meta/config.yml +++ b/x-pack/metricbeat/module/istio/_meta/config.yml @@ -25,3 +25,10 @@ period: 10s # use istio-pilot.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset hosts: ["localhost:15014"] + +# Istio citadel. To collect all Citadel-generated metrics. +- module: istio + metricsets: ["citadel"] + period: 10s + # 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 8d2abd1f962..95d10262fdf 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`, `galley`. +The default metricsets are `mesh`, `mixer`, `pilot`, `galley`, `citadel`. [float] === Compatibility diff --git a/x-pack/metricbeat/module/istio/citadel/_meta/data.json b/x-pack/metricbeat/module/istio/citadel/_meta/data.json new file mode 100644 index 00000000000..6eae8bfa0aa --- /dev/null +++ b/x-pack/metricbeat/module/istio/citadel/_meta/data.json @@ -0,0 +1,24 @@ +{ + "@timestamp": "2019-03-01T08:05:34.853Z", + "event": { + "dataset": "istio.citadel", + "duration": 115000, + "module": "istio" + }, + "istio": { + "citadel": { + "secret_controller_svc_acc_created_cert": { + "count": 58 + }, + "server_root_cert_expiry_seconds": 1894287345 + } + }, + "metricset": { + "name": "citadel", + "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/citadel/_meta/docs.asciidoc b/x-pack/metricbeat/module/istio/citadel/_meta/docs.asciidoc new file mode 100644 index 00000000000..cd1ce732b62 --- /dev/null +++ b/x-pack/metricbeat/module/istio/citadel/_meta/docs.asciidoc @@ -0,0 +1 @@ +This is the citadel metricset of the module istio. This metricset collects Citadel-specific metrics. diff --git a/x-pack/metricbeat/module/istio/citadel/_meta/fields.yml b/x-pack/metricbeat/module/istio/citadel/_meta/fields.yml new file mode 100644 index 00000000000..35a95a311f3 --- /dev/null +++ b/x-pack/metricbeat/module/istio/citadel/_meta/fields.yml @@ -0,0 +1,59 @@ +- name: citadel + type: group + description: > + Contains statistics related to the Istio Citadel service + release: beta + fields: + - name: grpc.method + type: keyword + description: > + The grpc method + - name: grpc.service + type: keyword + description: > + The grpc service + - name: grpc.type + type: keyword + description: > + The type of the respective grpc service + + - name: secret_controller_svc_acc_created_cert.count + type: long + description: > + The number of certificates created due to service account creation. + - name: server_root_cert_expiry_seconds + type: float + description: > + The unix timestamp, in seconds, when Citadel root cert will expire. We set it to negative in case of internal error. + - name: grpc.server.handled + type: long + description: > + Total number of RPCs completed on the server, regardless of success or failure. + - name: grpc.server.msg.received + type: long + description: > + Total number of RPC stream messages received on the server. + - name: grpc.server.msg.sent + type: long + description: > + Total number of gRPC stream messages sent by the server. + - name: grpc.server.started + type: long + description: > + Total number of RPCs started on the server. + + - name: grpc.server.handling.latency.ms.bucket.* + type: object + object_type: long + description: > + The response latency (milliseconds) of gRPC that had been application-level handled by the server. + - name: grpc.server.handling.latency.ms.sum + type: long + format: duration + description: > + The response latency of gRPC, sum of latencies in milliseconds + - name: grpc.server.handling.latency.ms.count + type: long + description: > + The response latency of gRPC, number of metrics + diff --git a/x-pack/metricbeat/module/istio/citadel/_meta/testdata/config.yml b/x-pack/metricbeat/module/istio/citadel/_meta/testdata/config.yml new file mode 100644 index 00000000000..ab6bf241654 --- /dev/null +++ b/x-pack/metricbeat/module/istio/citadel/_meta/testdata/config.yml @@ -0,0 +1,3 @@ +type: http +url: "/metrics" +suffix: plain diff --git a/x-pack/metricbeat/module/istio/citadel/_meta/testdata/docs.plain b/x-pack/metricbeat/module/istio/citadel/_meta/testdata/docs.plain new file mode 100644 index 00000000000..90defc2a1ab --- /dev/null +++ b/x-pack/metricbeat/module/istio/citadel/_meta/testdata/docs.plain @@ -0,0 +1,198 @@ +# HELP citadel_secret_controller_svc_acc_created_cert_count The number of certificates created due to service account creation. +# TYPE citadel_secret_controller_svc_acc_created_cert_count counter +citadel_secret_controller_svc_acc_created_cert_count 58 +# HELP citadel_server_root_cert_expiry_timestamp The unix timestamp, in seconds, when Citadel root cert will expire. We set it to negative in case of internal error. +# TYPE citadel_server_root_cert_expiry_timestamp gauge +citadel_server_root_cert_expiry_timestamp 1.894287345e+09 +# HELP go_gc_duration_seconds A summary of the GC invocation durations. +# TYPE go_gc_duration_seconds summary +go_gc_duration_seconds{quantile="0"} 4.0744e-05 +go_gc_duration_seconds{quantile="0.25"} 0.001608404 +go_gc_duration_seconds{quantile="0.5"} 0.002692404 +go_gc_duration_seconds{quantile="0.75"} 0.003728176 +go_gc_duration_seconds{quantile="1"} 0.003728176 +go_gc_duration_seconds_sum 0.008069728 +go_gc_duration_seconds_count 4 +# HELP go_goroutines Number of goroutines that currently exist. +# TYPE go_goroutines gauge +go_goroutines 41 +# HELP go_info Information about the Go environment. +# TYPE go_info gauge +go_info{version="go1.13.4"} 1 +# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use. +# TYPE go_memstats_alloc_bytes gauge +go_memstats_alloc_bytes 7.595352e+06 +# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed. +# TYPE go_memstats_alloc_bytes_total counter +go_memstats_alloc_bytes_total 1.8281672e+07 +# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table. +# TYPE go_memstats_buck_hash_sys_bytes gauge +go_memstats_buck_hash_sys_bytes 1.450701e+06 +# HELP go_memstats_frees_total Total number of frees. +# TYPE go_memstats_frees_total counter +go_memstats_frees_total 100191 +# HELP go_memstats_gc_cpu_fraction The fraction of this program's available CPU time used by the GC since the program started. +# TYPE go_memstats_gc_cpu_fraction gauge +go_memstats_gc_cpu_fraction 0.00013514337336008024 +# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata. +# TYPE go_memstats_gc_sys_bytes gauge +go_memstats_gc_sys_bytes 2.38592e+06 +# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use. +# TYPE go_memstats_heap_alloc_bytes gauge +go_memstats_heap_alloc_bytes 7.595352e+06 +# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used. +# TYPE go_memstats_heap_idle_bytes gauge +go_memstats_heap_idle_bytes 5.6016896e+07 +# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use. +# TYPE go_memstats_heap_inuse_bytes gauge +go_memstats_heap_inuse_bytes 1.0174464e+07 +# HELP go_memstats_heap_objects Number of allocated objects. +# TYPE go_memstats_heap_objects gauge +go_memstats_heap_objects 26612 +# HELP go_memstats_heap_released_bytes Number of heap bytes released to OS. +# TYPE go_memstats_heap_released_bytes gauge +go_memstats_heap_released_bytes 5.341184e+07 +# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system. +# TYPE go_memstats_heap_sys_bytes gauge +go_memstats_heap_sys_bytes 6.619136e+07 +# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection. +# TYPE go_memstats_last_gc_time_seconds gauge +go_memstats_last_gc_time_seconds 1.5804708100765676e+09 +# HELP go_memstats_lookups_total Total number of pointer lookups. +# TYPE go_memstats_lookups_total counter +go_memstats_lookups_total 0 +# HELP go_memstats_mallocs_total Total number of mallocs. +# TYPE go_memstats_mallocs_total counter +go_memstats_mallocs_total 126803 +# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures. +# TYPE go_memstats_mcache_inuse_bytes gauge +go_memstats_mcache_inuse_bytes 6944 +# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system. +# TYPE go_memstats_mcache_sys_bytes gauge +go_memstats_mcache_sys_bytes 16384 +# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures. +# TYPE go_memstats_mspan_inuse_bytes gauge +go_memstats_mspan_inuse_bytes 101456 +# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system. +# TYPE go_memstats_mspan_sys_bytes gauge +go_memstats_mspan_sys_bytes 131072 +# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place. +# TYPE go_memstats_next_gc_bytes gauge +go_memstats_next_gc_bytes 1.257112e+07 +# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations. +# TYPE go_memstats_other_sys_bytes gauge +go_memstats_other_sys_bytes 1.193515e+06 +# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator. +# TYPE go_memstats_stack_inuse_bytes gauge +go_memstats_stack_inuse_bytes 917504 +# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator. +# TYPE go_memstats_stack_sys_bytes gauge +go_memstats_stack_sys_bytes 917504 +# HELP go_memstats_sys_bytes Number of bytes obtained from system. +# TYPE go_memstats_sys_bytes gauge +go_memstats_sys_bytes 7.2286456e+07 +# HELP go_threads Number of OS threads created. +# TYPE go_threads gauge +go_threads 13 +# HELP grpc_server_handled_total Total number of RPCs completed on the server, regardless of success or failure. +# TYPE grpc_server_handled_total counter +grpc_server_handled_total{grpc_code="Aborted",grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +# HELP grpc_server_handling_seconds Histogram of response latency (seconds) of gRPC that had been application-level handled by the server. +# TYPE grpc_server_handling_seconds histogram +grpc_server_handling_seconds_bucket{grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary",le="0.005"} 0 +grpc_server_handling_seconds_bucket{grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary",le="0.01"} 0 +grpc_server_handling_seconds_bucket{grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary",le="0.025"} 0 +grpc_server_handling_seconds_bucket{grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary",le="0.05"} 0 +grpc_server_handling_seconds_bucket{grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary",le="0.1"} 0 +grpc_server_handling_seconds_bucket{grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary",le="0.25"} 0 +grpc_server_handling_seconds_bucket{grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary",le="0.5"} 0 +grpc_server_handling_seconds_bucket{grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary",le="1"} 0 +grpc_server_handling_seconds_bucket{grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary",le="2.5"} 0 +grpc_server_handling_seconds_bucket{grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary",le="5"} 0 +grpc_server_handling_seconds_bucket{grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary",le="10"} 0 +grpc_server_handling_seconds_bucket{grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary",le="+Inf"} 0 +grpc_server_handling_seconds_sum{grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_handling_seconds_count{grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_handling_seconds_bucket{grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary",le="0.005"} 0 +grpc_server_handling_seconds_bucket{grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary",le="0.01"} 0 +grpc_server_handling_seconds_bucket{grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary",le="0.025"} 0 +grpc_server_handling_seconds_bucket{grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary",le="0.05"} 0 +grpc_server_handling_seconds_bucket{grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary",le="0.1"} 0 +grpc_server_handling_seconds_bucket{grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary",le="0.25"} 0 +grpc_server_handling_seconds_bucket{grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary",le="0.5"} 0 +grpc_server_handling_seconds_bucket{grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary",le="1"} 0 +grpc_server_handling_seconds_bucket{grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary",le="2.5"} 0 +grpc_server_handling_seconds_bucket{grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary",le="5"} 0 +grpc_server_handling_seconds_bucket{grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary",le="10"} 0 +grpc_server_handling_seconds_bucket{grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary",le="+Inf"} 0 +grpc_server_handling_seconds_sum{grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +grpc_server_handling_seconds_count{grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +# HELP grpc_server_msg_received_total Total number of RPC stream messages received on the server. +# TYPE grpc_server_msg_received_total counter +grpc_server_msg_received_total{grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +# HELP grpc_server_msg_sent_total Total number of gRPC stream messages sent by the server. +# TYPE grpc_server_msg_sent_total counter +grpc_server_msg_sent_total{grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +# HELP grpc_server_started_total Total number of RPCs started on the server. +# TYPE grpc_server_started_total counter +grpc_server_started_total{grpc_method="CreateCertificate",grpc_service="istio.v1.auth.IstioCertificateService",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="HandleCSR",grpc_service="istio.v1.auth.IstioCAService",grpc_type="unary"} 0 +# HELP istio_build Istio component build info +# TYPE istio_build gauge +istio_build{component="citadel",tag="1.4.3"} 1 +# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds. +# TYPE process_cpu_seconds_total counter +process_cpu_seconds_total 0.2 +# HELP process_max_fds Maximum number of open file descriptors. +# TYPE process_max_fds gauge +process_max_fds 1.048576e+06 +# HELP process_open_fds Number of open file descriptors. +# TYPE process_open_fds gauge +process_open_fds 11 +# HELP process_resident_memory_bytes Resident memory size in bytes. +# TYPE process_resident_memory_bytes gauge +process_resident_memory_bytes 3.721216e+07 +# HELP process_start_time_seconds Start time of the process since unix epoch in seconds. +# TYPE process_start_time_seconds gauge +process_start_time_seconds 1.5804706705e+09 +# HELP process_virtual_memory_bytes Virtual memory size in bytes. +# TYPE process_virtual_memory_bytes gauge +process_virtual_memory_bytes 1.41717504e+08 +# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes. +# TYPE process_virtual_memory_max_bytes gauge +process_virtual_memory_max_bytes -1 diff --git a/x-pack/metricbeat/module/istio/citadel/_meta/testdata/docs.plain-expected.json b/x-pack/metricbeat/module/istio/citadel/_meta/testdata/docs.plain-expected.json new file mode 100644 index 00000000000..949bfad244a --- /dev/null +++ b/x-pack/metricbeat/module/istio/citadel/_meta/testdata/docs.plain-expected.json @@ -0,0 +1,133 @@ +[ + { + "event": { + "dataset": "istio.citadel", + "duration": 115000, + "module": "istio" + }, + "istio": { + "citadel": { + "secret_controller_svc_acc_created_cert": { + "count": 58 + }, + "server_root_cert_expiry_seconds": 1894287345 + } + }, + "metricset": { + "name": "citadel", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.citadel", + "duration": 115000, + "module": "istio" + }, + "istio": { + "citadel": { + "grpc": { + "method": "HandleCSR", + "server": { + "handled": 0, + "handling": { + "latency": { + "ms": { + "bucket": { + "+Inf": 0, + "10": 0, + "100": 0, + "1000": 0, + "10000": 0, + "25": 0, + "250": 0, + "2500": 0, + "5": 0, + "50": 0, + "500": 0, + "5000": 0 + }, + "count": 0, + "sum": 0 + } + } + }, + "msg": { + "received": 0, + "sent": 0 + }, + "started": 0 + }, + "service": "istio.v1.auth.IstioCAService", + "type": "unary" + } + } + }, + "metricset": { + "name": "citadel", + "period": 10000 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "istio" + } + }, + { + "event": { + "dataset": "istio.citadel", + "duration": 115000, + "module": "istio" + }, + "istio": { + "citadel": { + "grpc": { + "method": "CreateCertificate", + "server": { + "handled": 0, + "handling": { + "latency": { + "ms": { + "bucket": { + "+Inf": 0, + "10": 0, + "100": 0, + "1000": 0, + "10000": 0, + "25": 0, + "250": 0, + "2500": 0, + "5": 0, + "50": 0, + "500": 0, + "5000": 0 + }, + "count": 0, + "sum": 0 + } + } + }, + "msg": { + "received": 0, + "sent": 0 + }, + "started": 0 + }, + "service": "istio.v1.auth.IstioCertificateService", + "type": "unary" + } + } + }, + "metricset": { + "name": "citadel", + "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/citadel/citadel.go b/x-pack/metricbeat/module/istio/citadel/citadel.go new file mode 100644 index 00000000000..9d433bd64e7 --- /dev/null +++ b/x-pack/metricbeat/module/istio/citadel/citadel.go @@ -0,0 +1,47 @@ +// 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 citadel + +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{ + "citadel_secret_controller_svc_acc_created_cert_count": prometheus.Metric("secret_controller_svc_acc_created_cert.count"), + "citadel_server_root_cert_expiry_timestamp": prometheus.Metric("server_root_cert_expiry_seconds"), + "grpc_server_handled_total": prometheus.Metric("grpc.server.handled"), + "grpc_server_handling_seconds": prometheus.Metric("grpc.server.handling.latency.ms", prometheus.OpMultiplyBuckets(1000)), + "grpc_server_msg_received_total": prometheus.Metric("grpc.server.msg.received"), + "grpc_server_msg_sent_total": prometheus.Metric("grpc.server.msg.sent"), + "grpc_server_started_total": prometheus.Metric("grpc.server.started"), + }, + + Labels: map[string]prometheus.LabelMap{ + "grpc_method": prometheus.KeyLabel("grpc.method"), + "grpc_service": prometheus.KeyLabel("grpc.service"), + "grpc_type": prometheus.KeyLabel("grpc.type"), + }, +} + +func init() { + mb.Registry.MustAddMetricSet("istio", "citadel", + prometheus.MetricSetBuilder(mapping), + mb.WithHostParser(hostParser)) +} diff --git a/x-pack/metricbeat/module/istio/citadel/citadel_test.go b/x-pack/metricbeat/module/istio/citadel/citadel_test.go new file mode 100644 index 00000000000..09672304711 --- /dev/null +++ b/x-pack/metricbeat/module/istio/citadel/citadel_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 citadel + +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", "citadel") +} diff --git a/x-pack/metricbeat/module/istio/fields.go b/x-pack/metricbeat/module/istio/fields.go index bc96c9a8b59..730d787d991 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 "eJzUXE2T47YRve+v6PIldmrMvabmkKrUOh9biV2b3U1VKhcZAlsiLBCggYY08q9P4YukKEozkkjNWIfdGZHEe6/RaDQa4HwPG9w/grAk9DsAEiTxEb4Jv3/zDqBEy41oSGj1CH9+BwDxXvhRl07iOwCDEpnFR1gisXcAK4GytI/h1u9BsRq75v2H9g0+wtpo16RvRjD85+fw1M/AtSImlAVLjPx33AJVjGCHBsEgK2FldA0feyB9En0iayYl7tuvx9icYeQ/H0bYGJSMsATSQBVGIgkKLJqt4NhrY2iw/Bly7vP2/x5cyMw3uN9pUw6uneHvP18rDC2CXgXCBq12hmP4pUYygoPoyzrJyTaMT0zsn26JRiGh7RCGREf5bNFYodW0bFKjmYBe/oKcRuG5lhI5Tc6gazeTEMoSUz0rjPIJo6dgjipUJDjzLRQ12qrRUnCBdpSm1Gp9hTO5eonG89syKcqI/f4Q+30fGzZK75QfMGmYMAIGjRaKQCggUY/38aio1xI0jRhvluJHtNUHrVZiyHV6ER7vfYd3G3mFtNNmI9S6KNGSUMEyxsk79EaH/X6IPZkoVFu9XwlJaO4qqI87mZg1I9yx/V2FZMzJRFhRImf37Y2MOZmIrTDkmEy5wV21DKBvkxQi4L5gREYsHWHNlFihpfkVReT3x8iTCKqYKuU9hnySkfEmIZ/Tg7uxbwEnoX+fySNRv3i2OJ9zGaf83UVjNEdrtSlwi4oWtmGqKJ1JSZgtlo5vkIo/juocSTIhfbm4xRKZgF947BAVIOMVCMV1LdQaAlVgFiphSa8NqyHStN4KtZBSWORalfY27dbVL+3elTY1o8eW+TyaH8C62jtIvnliwVw7NezOufvxoef3cUVnL3Vdq1hjK02L0OAr+WynIrKIK/+KbRGWXnqii+Wo416p9AIPnVJC64fxvivJ/969TYoVhmtvJ176LvGiM8cpg+R53a8TK4d6JwuQ58XO5rnHeq50V0uMMPjUYt4sy7cCXV7VoIlf/efzv54haBjhel9oteAVU+vx4tzN9ESNNtSiMuAfLGj1ISBCxWyMbNynU+XLCPvfzOJXJ9ByXBjfXzislk1JnkHC6uiOgWa+se642LglLtI077j36gVpYnJWopuuIprqtAl75aTcQ1w8lMBUDMbjxVGf+8aRxtHQYoP7wjUlo8kc+O8xd+6AYIfLSusNeECxEpwRwhjmGMdQmyqkZlP5wOZPtiMUWs/R4VuD33mgl5Ka1myneQ1xMqMabfVuCDzHDoYHmmj/4qhk3edO+DQM+y8YJ43RNVKFzo63nqF/0ctR1KsL8j3gYdttdMNf3ZRlEB9i2kbbAb/c+zEf+6ox+ml/jsvrplOfI4luSr4yfRrRcrcU6XO2f3782rRoRMSUqc8Iz25OGfXMITMrfsNiuSd8RU/5In7Dly7ojmlPt4I7wWcIcIbLDH07ZHMIcYKYbbSy+Pvr3GPer9i7x2TeSvc22hCa6aa6z6lFECUqn7+ljD8jdXvy0ePhI4GwYJF8FtHbkQOxSg/56+GoBgtpBZr+5AVMlTm/HXuCS4GK+k8UZzL1YqfNxmd1xdRHJ4QdWiQfpUjkMzLsKsGrcHzFaJmWS5Hci4lPfr5inP3BIYuBjLNkGyMUF82JBdBkHBtEAy1WJkqGrVaCZy49B9xVqOJDh1v2/rqzeF4Ta5p51SQDs6aBJbNYglbhF8mWKK/phRlOvhyzHpyEOclvlGgvHLzGyOxHo/MWPUn0NUbidbTfxJjsE7p5YPYbm3109o1+foiOds/zCl5jtJ73pGcppyJAUWk7nupMwrtPMiGCR8xpl1hK9Gs4v+pt9x9y+vFiDfNHnTEdHvUyjvcOOCOsn/GQbPrGaNJczx1vEsr5vPMvnz52d4qV/3krSiwfQFOFZids+yRo45MzlQ5X5qfGe6nN/Lkup6upH6vMOOBxjqSGJ2IMEhYag9anxFrJvQ9Q//j69VPezxhX0cktLHJnBO3TsYuZM540CgZBP0Kf79DakWNyQdLGySPm/2m6CDewjbdWXTuV2w3aMCwoBsuIE9MSaXAqngIJIIOnctVdKP9vMlxmz5lSmmAZPLRBI/2VxoV6atcLbfFWPB0s0mas3nqkqcq38aQqb4rcSYxv5tn5yoPTA4BBjmIbS53PLZ9SdZ6VrCE0hVArXaAx2thUuJ+FbkQAVGGNjgZLKJ3xE1Pa9fQ/JgdP1MBTO6z1v1xR/G4e08cBkOBCLdOz5s4YH2USm7NM82m8Wfm1IFcwTAft7mDG9kjf9SST93Y7UPfy4CVy5ixmDf09PYPkjMIyPnZWRt6VeWOjMNO6YAS2SuZ3m27P/3K/MU6+NWN7ShcYuq+gZsSreaaYRKoUcdMmvkzGLPh5vGHGIlvK87NMIDq/N8TjqZd7AmHd+JTgjXlDpnWBR7RK5jd2hrrG4E5Zn42tBJYFCwn2IgXPWQhHiOS5KyZksDr6BLCdd5boLe8U2zIhTzt0KWzjRxqaRS85tosGzWLLjEDaz3jE5ceQpObEqE8gpHzZXxKRADouI8+ZWX7BpbYzHSBqTdy9hRrRsudHpwAyTFlx2sUz55JhrdWUrp0999BjtggRCox2JFT0dAZrscU27wNUW2G0qlGdKKpk2t7vnAnbiELew9LJ0bnBmItcZ+2Wduize8XEXSVkdBNPudV1nYTWyRXu7uXhCndyH21/taO3vA26Ow5Og9+7q0fnlCR7r1yngTiK0h09C1FvJgbD1jNqI6Smu1QoAtJEFYqn8txOvFCE66O+fMZgH3xz3lpcqxxQn374kjeiu1qaDUXpT17NuCt5co2z1Yl18W3sPKUarWVrtGDDYXxmYYdS+v9TKAohOmRixt8Tfuw/eNS8VyRL+wDG/8NLG6ppWJ4oLGaFRTzUi3wqpw0n33yjfqpKp6qiqYHYBq33KA98KVl/8fwR7tHzL8/Q/diu3rz9wplzLp0lNKFT9AoksxQIF/A/NLq/3rPhBO/pZXVrY64V4ROl5H46l/ppOIF96w2vHdnvQChBglHI6725M4eTTD0Do5icnGV0iS7gZyD47w9fMnGhYnA5nbNLwamQwhKqUFpbaqfGJ6QbTZnBvOUSDGTc01X6AT/tKDxZVERNobdoihSRCuLj+6ET0t4JWXJmSvDoHXnYCaraVLO9iXh3zw36/E+z+HZfWdgxGQgKkTOuCP3lL9BoQ5f3FPFBR3lBd+upfiec6qiD3rxd3x0c8Yyq570uHhnjWm1f54UyP4cpxDLuZqQpLE1ef1VbvT+sitiH589Iv0TohO8y3qIgnZSOr7S8SMbZP45ww8xx/JcPzkwVW2GomItJ+lMMlzE67N1JX5m7pX95TkdDD49TV7oQ4zHimlzrky5jxXYV5tRUs0NVxhf3iS0lPkCjrRVLuQehwi7GiTgXk7RRbte9ndLuMvzt3z/8NA7qm58QMfZQPEp7+CJRrJr9PwAA///zQWXL" + return "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" } diff --git a/x-pack/metricbeat/modules.d/istio.yml.disabled b/x-pack/metricbeat/modules.d/istio.yml.disabled index 5c498d6f183..1140d047a09 100644 --- a/x-pack/metricbeat/modules.d/istio.yml.disabled +++ b/x-pack/metricbeat/modules.d/istio.yml.disabled @@ -28,3 +28,10 @@ period: 10s # use istio-pilot.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset hosts: ["localhost:15014"] + +# Istio citadel. To collect all Citadel-generated metrics. +- module: istio + metricsets: ["citadel"] + period: 10s + # use istio-pilot.istio-system:15014, when deploying Metricbeat in a kubernetes cluster as Pod or Daemonset + hosts: ["localhost:15014"]