Instana backend components
The Instana backend architecture diagram provides an overview of how the backend components interact with each other.
Architecture diagram
Components
Instana backend components are listed in the following table. Some Instana components are available only when the associated feature flags are enabled. For more information, see Enabling optional features.
Component | Scope | Availability | Description |
---|---|---|---|
acceptor | Shared | Always | Metrics and traces ingress. Receives raw payloads from Instana agents and publishes to the unit’s Kafka topic. |
accountant | Shared | Always | Collects usage data and contains REST APIs that the Instana UI can use to access the usage data. |
appdata-health-aggregator | Shared | Always | Aggregates calls to metric to allow fetching the most recent metric value for a query. It optimizes ClickHouse queries, as ClickHouse cannot handle many queries. This component is used for Smart Alerts. |
action-orchestration | Shared | Feature flag feature.automation.enabled |
Processes the action execution requests. |
action-reader | Shared | Feature flag feature.automation.enabled |
Reads action instances from Elasticsearch. |
action-writer | Shared | Feature flag feature.automation.enabled |
Writes action instances to Elasticsearch. |
appdata-health-processor | Shared | Always | Issues recognition for application perspectives. Processes and manages the state and lifecycle configurations of Smart Alerts, fetches metrics over appdata-health-aggregator , emits event messages to issue-tracker . |
appdata-legacy-converter | Tenant unit (TU) | Always | Allows issue detection by using the existing processing pipeline. |
appdata-live-aggregator | Shared | Feature flag feature.appdata.live.aggregator.enabled |
Reduces the load against ClickHouse by serving frequent read queries from the cache. High load is caused by the Instana dashboard live view where frequent calls hit appdata-reader and ClickHouse. |
appdata-processor | TU | Always | Extracts calls from the traces. Receives traces from acceptor , collects the spans for each trace and maps them to infrastructure entities, labels the services, and groups the applications. Forwards information to the appdata-writer . |
appdata-reader | Shared | Always | Gateway for reading the application data from ClickHouse. |
appdata-writer | Shared | Always | Receives processed calls from appdata-processor and eum-processor , and stores them in ClickHouse. |
butler | Shared | Always | Public login and user settings management. Supports authentication, authorization, licensing, and accounting. |
cashier-ingest | Shared | Always | Pulls incoming usage information from Kafka, calculates usage statistics, and stores it in the PostgreSQL database. |
cashier-rollup | Shared | Always | Calculates usage statistics rollups, and stores it in the PostgreSQL database. |
eum-acceptor | Shared | Always | End-user monitoring (EUM) beacons ingress. Receives beacons and writes them to Kafka topics. |
eum-health-processor | Shared | Always | Issues recognition for EUM. Processes EUM data for Smart Alerts of website and mobile apps; emits event messages to issue-tracker . |
eum-processor | Shared | Always | EUM processing. Reads beacon from Kafka, sets sampling decisions, and puts them into another Kafka topic. |
filler | TU | Always | Reads raw messages from the unit’s Kafka topic that is published by acceptor for building the infrastructure entities and metrics. The infrastructure entities are stored in ElasticSearch. Metrics are stored in ClickHouse and
BeeInstana. Entity tags are passed on to tag-processor . The filler component is used for metrics and trace processing, and for graph maintenance. |
gateway | Shared | Always | Central point of contact for EUM and Instana UI. |
groundskeeper | Shared | Always | Internal API and access management for Instana agents. |
issue-tracker | TU | Always | Reads events from Kafka and time bounds for the issues. Generates and manages events, and sends notifications. |
js-stack-trace-translator | Shared | Always | Deminifies JavaScript stacktraces for EUM. Some of the beacons contain stack traces. This component converts minified stack traces to their original source file name and line number by using the sourcemap file. |
log-processor | Shared | Feature flag feature.logging.enabled |
Processes logs from various sources, extracts relevant data, and unifies the data representation to an internal format. |
log-reader | Shared | Feature flag feature.logging.enabled |
Reads logs and meta information on logs from ClickHouse. |
log-writer | Shared | Feature flag feature.logging.enabled |
Writes logs from log-processor to ClickHouse. Writes and updates infrastructure tag set. |
otlp-acceptor | Shared | Feature flag feature.otlp.enabled |
Receives OpenTelemetry data that includes traces, metrics, and logs. The component receives the data in the OpenTelemetry format, transforms it to Instana-native format, and publishes it to the unit’s Kafka topic. |
processor | TU | Always | Creates topologies and recognizes issues. Processes infrastructure metrics and all built-in and custom event rules. Emits event messages to issue-tracker . |
serverless-acceptor | Shared | Always | Serverless traces ingress. Receives raw payloads from the serverless applications and publishes them to the unit’s Kafka topic. |
sli-beacons-filter | Shared | Feature flag feature.slo.enabled |
Deserializes the beacons and matches them based on the Service Level Indicator (SLI) configurations or Apdex configurations. |
sli-calls-filter | Shared | Feature flag feature.slo.enabled |
Deserializes the calls and matches them based on the SLI configurations or Apdex configurations. |
sli-data-reader | Shared | Feature flag feature.slo.enabled |
Retrieves data from ClickHouse to feed the Service Level Objective (SLO) and Apdex widget and their respective APIs. |
sli-data-writer | Shared | Feature flag feature.slo.enabled |
Writes all the SLI calls and SLI beacons to ClickHouse. |
sli-evaluator | Shared | Always | Common logic to calculate SLIs and SLOs based on arbitrary metrics and store them in ElasticSearch. |
synthetics-acceptor | Shared | Feature flag feature.synthetics.enabled |
Communicates with the Synthetic monitoring Point of Presence (PoP). Registers the PoP by creating a location entry in groundskeeper . Returns Synthetic tests to be run to the PoP upon request. Transfers run results
of Synthetic tests to Kafka for the synthetics-writer to store in ClickHouse. |
synthetics-health-processor | Shared | Feature flag feature.synthetic.smart.alerts.enabled |
The central component for Smart Alerts for Synthetics. Reads the configurations of Smart Alerts for Synthetics from Postgres and the Synthetic test results from Kafka to evaluate Smart Alerts. Emits event messages to issue-tracker when a rule is violated. |
synthetics-reader | Shared | Feature flag feature.synthetics.enabled |
Interacts with the ui-backend to respond to UI and API requests for Synthetic monitoring information. |
synthetics-writer | Shared | Feature flag feature.synthetics.enabled |
Stores Synthetic test results to ClickHouse. |
tag-processor | Shared | Always | Receives entity tags from filler and stores these tags in ElasticSearch so that the entities can be searched by their tags. |
tag-reader | Shared | Always | Allows querying entities by tags in ElasticSearch. |
ui-backend | TU | Always | This component is part of the UI backend and contains the REST APIs that ui-client can use. |
ui-client | Shared | Always | In-browser part of the UI. |
TU-scoped components run one replica per tenant unit.