Skip to content

Commit

Permalink
Cherry-pick #15535 to 7.x: Add Istio mesh metricset (#15692)
Browse files Browse the repository at this point in the history
* [Metricbeat] Add Istio mesh metricset (#15535)

(cherry picked from commit b6d483d)
  • Loading branch information
ChrsMark authored Jan 21, 2020
1 parent ce6d8b5 commit 901fdd0
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 @@ -169,6 +169,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d
- Add a `system/network_summary` metricset {pull}15196[15196]
- Add IBM MQ light-weight Metricbeat module {pull}15301[15301]
- Enable script processor. {pull}14711[14711]
- 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 901fdd0

Please sign in to comment.