[role="xpack"]
[[services]]
=== Services

*Service* inventory provides a quick, high-level overview of the health and general
performance of all instrumented services.

To help surface potential issues, services are sorted by their health status:
**critical** > **warning** > **healthy** > **unknown**.
Health status is powered by <<machine-learning-integration,machine learning>>
and requires anomaly detection to be enabled.

In addition to health status, active alerts for each service are prominently displayed in the service inventory table. Selecting an active alert badge brings you to the <<apm-alerts,Alerts>> tab where you can learn more about the active alert and take action.

[role="screenshot"]
image::apm/images/apm-services-overview.png[Example view of services table the APM app in Kibana]

[float]
[[service-groups]]
==== Service groups

beta::[]

Group services together to build meaningful views that remove noise, simplify investigations across services,
and <<apm-alert-view-group,combine related alerts>>.
Service groups are {kib} space-specific and available for any users with appropriate access.

// This screenshot is reused in the alerts docs
// Ensure it has an active alert showing
[role="screenshot"]
image::apm/images/apm-service-group.png[Example view of service group in the APM app in Kibana]

To enable Service groups, open {kib} and navigate to **Stack Management** > **Advanced Settings** > **Observability**,
and enable the **Service groups feature**.

To create a service group:

. Navigate to **Observability** > **APM** > **Services**.
. Switch to **Service groups**.
. Click **Create group**.
. Specify a name, color, and description.
. Click **Select services**.
. Specify a <<kuery-query, Kibana Query Language (KQL)>> query to select services for the group.
Services that match the query within the last 24 hours will be assigned to the group.

[NOTE]
====
Once a service group has been saved, this list of services within it is static.
If a newly added service matches the KQL query, it will not be automatically added to the service group.
Similarly, if a service stops matching the KQL query, it will not be removed from the group.

To update the list of services within a group,
edit the service group, click **Refresh** next to the KQL query, and click **Save group**.
====

**Examples**

Not sure where to get started? Here are some sample queries you can build from:

* Group services by environment--in this example, "production": `service.environment : "production"`
* Group services by name--this example groups those that end in "beat": `service.name : *beat` (matches services named "Auditbeat", "Heartbeat", "Filebeat", etc.)
