Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Istio mesh metricset #15535

Merged
merged 12 commits into from
Jan 20, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.next.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,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