Skip to main content
Metoro generally defines things in terms of Kubernetes constructs. If you are familiar with Kubernetes, you should be able to understand the majority of what Metoro is showing you. The one exception is the concept of services.

Services

Services are the core abstraction in Metoro. They are the entities that represent the persistent components of your microservice application and are the main way you will interact with the data in Metoro. Services are automatically detected by Metoro and do not require any configuration from you.

How does Metoro detect a service?

Metoro makes a service out of each of the following Kubernetes resources:
  • Deployments
  • StatefulSets
  • DaemonSets
  • ReplicaSets
For example, if we have the following architecture in our Kubernetes cluster: Metoro will automatically detect two services:
  • Currency
  • Checkout
All of the data around the underlying pods, containers, and the Kubernetes resources themselves are associated with the service they belong to and will be tracked over time by Metoro. Metoro extracts APM, traces, logs, metrics, and profiling data from the pods and containers associated with the service and associates them with the service while also tracking changes to the Kubernetes metadata. This allows you to do things like see if a new deployment caused a spike in errors or if a new pod is causing a memory leak.

How do you interact with services?

Service Catalog

The best place to get started with services is at the service catalog page. Check it out here. The service catalog has two views:
  • Cluster services shows the Kubernetes services Metoro has detected in your cluster and lets you drill into their APM, Kubernetes, logs, events, and profiling data.
  • External dependencies shows destinations outside the cluster—such as hosted databases and third-party APIs—that were called by services inside the cluster. The dependency metrics and traces are observed from those in-cluster callers, so they describe the selected cluster and time range rather than the dependency’s complete infrastructure health.
Each external dependency row lists the environments in which calls to that destination were observed during the selected time range. Open an external dependency to inspect its request volume, errors, latency, calling services, service-map context, and recent calls. Service catalog showing monitored services After you find the service you are interested in, you can click on it to see the auto-generated service page.

Service Page

The service page shows you in-depth information about the service including:
  • APM data
  • Kubernetes information like number of replicas, deployment history, etc
  • Metrics
  • Logs
  • Profiling data
  • Kubernetes events associated with the service
The default view is the APM tab. Here you can see autogenerated RED metrics, requests to the service, and a service map of the communication between the service and other services in the cluster. Check out an example service page. Service details page with RED metrics, traces and service map showing communication between services Clicking through to the Kubernetes tab shows a service-scoped operational view, including pods, scaling information, and aggregated metrics. You can drill into pods and inspect related resource state directly from the service context. Check out an example Kubernetes page. Kubernetes resources overview page For cluster-wide exploration across resource kinds and historical points in time, use Resource Viewer. Logs are a great way to see what’s going on in your service. Check out an example logs page. Logs explorer with search and filters Events show all of the Kubernetes events that have been emitted and target a resource associated with the service. For example, when a pod is being created you will see the event in the events tab. It’s a good way to see if any cluster-level issues are happening with a service, like failed scheduling or pod restarts. Check out an example here Finally, the profiling tab will show you any profiling data collected from the pods and containers associated with the service and aggregate it to show you how much time is being spent in each function across all pods. Check out an example profiling page. This allows you to see if there are any performance bottlenecks in your service. Continuous profiling flamegraph view