Skip to content

Commit

Permalink
[Metricbeat] Add Istio mesh metricset (elastic#15535)
Browse files Browse the repository at this point in the history
  • Loading branch information
ChrsMark authored Jan 20, 2020
1 parent 3e39fdf commit b6d483d
Show file tree
Hide file tree
Showing 25 changed files with 1,845 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.next.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,7 @@ TLS or Beats that accept connections over TLS and validate client certificates.
- Add DynamoDB AWS Metricbeat light module {pull}15097[15097]
- Release elb module as GA. {pull}15485[15485]
- Add a `system/network_summary` metricset {pull}15196[15196]
- Add mesh metricset for Istio Metricbeat module{pull}15535[15535]

*Packetbeat*

Expand Down
314 changes: 314 additions & 0 deletions metricbeat/docs/fields.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ grouped in the following categories:
* <<exported-fields-host-processor>>
* <<exported-fields-http>>
* <<exported-fields-ibmmq>>
* <<exported-fields-istio>>
* <<exported-fields-jolokia>>
* <<exported-fields-jolokia-autodiscover>>
* <<exported-fields-kafka>>
Expand Down Expand Up @@ -15861,6 +15862,319 @@ IBM MQ module
[[exported-fields-istio]]
== istio fields
istio Module
[float]
=== istio
`istio` contains statistics that were read from Istio
[float]
=== mesh
Contains statistics related to the Istio mesh service
*`istio.mesh.instance`*::
+
--
The prometheus instance
type: text
--
*`istio.mesh.job`*::
+
--
The prometheus job
type: keyword
--
*`istio.mesh.requests`*::
+
--
Total requests handled by an Istio proxy
type: long
--
*`istio.mesh.request.duration.ms.bucket.*`*::
+
--
Request duration histogram buckets in milliseconds
type: object
--
*`istio.mesh.request.duration.ms.sum`*::
+
--
Requests duration, sum of durations in milliseconds
type: long
format: duration
--
*`istio.mesh.request.duration.ms.count`*::
+
--
Requests duration, number of requests
type: long
--
*`istio.mesh.request.size.bytes.bucket.*`*::
+
--
Request Size histogram buckets
type: object
--
*`istio.mesh.request.size.bytes.sum`*::
+
--
Request Size histogram sum
type: long
--
*`istio.mesh.request.size.bytes.count`*::
+
--
Request Size histogram count
type: long
--
*`istio.mesh.response.size.bytes.bucket.*`*::
+
--
Request Size histogram buckets
type: object
--
*`istio.mesh.response.size.bytes.sum`*::
+
--
Request Size histogram sum
type: long
--
*`istio.mesh.response.size.bytes.count`*::
+
--
Request Size histogram count
type: long
--
*`istio.mesh.reporter`*::
+
--
Reporter identifies the reporter of the request. It is set to destination if report is from a server Istio proxy and source if report is from a client Istio proxy.
type: keyword
--
*`istio.mesh.source.workload.name`*::
+
--
This identifies the name of source workload which controls the source.
type: keyword
--
*`istio.mesh.source.workload.namespace`*::
+
--
This identifies the namespace of the source workload.
type: keyword
--
*`istio.mesh.source.principal`*::
+
--
This identifies the peer principal of the traffic source. It is set when peer authentication is used.
type: keyword
--
*`istio.mesh.source.app`*::
+
--
This identifies the source app based on app label of the source workload.
type: keyword
--
*`istio.mesh.source.version`*::
+
--
This identifies the version of the source workload.
type: keyword
--
*`istio.mesh.destination.workload.name`*::
+
--
This identifies the name of destination workload.
type: keyword
--
*`istio.mesh.destination.workload.namespace`*::
+
--
This identifies the namespace of the destination workload.
type: keyword
--
*`istio.mesh.destination.principal`*::
+
--
This identifies the peer principal of the traffic destination. It is set when peer authentication is used.
type: keyword
--
*`istio.mesh.destination.app`*::
+
--
This identifies the destination app based on app label of the destination workload..
type: keyword
--
*`istio.mesh.destination.version`*::
+
--
This identifies the version of the destination workload.
type: keyword
--
*`istio.mesh.destination.service.host`*::
+
--
This identifies destination service host responsible for an incoming request.
type: keyword
--
*`istio.mesh.destination.service.name`*::
+
--
This identifies the destination service name.
type: keyword
--
*`istio.mesh.destination.service.namespace`*::
+
--
This identifies the namespace of destination service.
type: keyword
--
*`istio.mesh.request.protocol`*::
+
--
This identifies the protocol of the request. It is set to API protocol if provided, otherwise request or connection protocol.
type: keyword
--
*`istio.mesh.response.code`*::
+
--
This identifies the response code of the request. This label is present only on HTTP metrics.
type: long
--
*`istio.mesh.connection.security.policy`*::
+
--
This identifies the service authentication policy of the request. It is set to mutual_tls when Istio is used to make communication secure and report is from destination. It is set to unknown when report is from source since security policy cannot be properly populated.
type: keyword
--
[[exported-fields-jolokia]]
== Jolokia fields
Expand Down
45 changes: 45 additions & 0 deletions metricbeat/docs/modules/istio.asciidoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
////
This file is generated! See scripts/mage/docs_collector.go
////

[[metricbeat-module-istio]]
[role="xpack"]
== istio module

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 metricset is `mesh`.

[float]
=== Compatibility

The Istio module is tested with Istio 1.4


[float]
=== Example configuration

The istio module supports the standard configuration options that are described
in <<configuration-metricbeat>>. Here is an example configuration:

[source,yaml]
----
metricbeat.modules:
- module: istio
metricsets: ["mesh"]
period: 10s
hosts: ["localhost:42422"]
----

[float]
=== Metricsets

The following metricsets are available:

* <<metricbeat-metricset-istio-mesh,mesh>>

include::istio/mesh.asciidoc[]

Loading

0 comments on commit b6d483d

Please sign in to comment.