## Purpose

**LMC Exporter** is a Prometheus-compatible exporter for LSEG RTDS Applications. It connects to LMC shared-memory server pools, discovers application roots, subscribes to selected managed-object variables, and exposes those values as Prometheus-style metrics. It can output metrics either as periodic stdout snapshots or through an HTTP scrape endpoint, usually `/metrics`.

The exporter is intended for platform teams, SRE teams, middleware operators, and clients who need to monitor LMC-based services without directly inspecting application internals or source code.

* * *

## What LMC Exporter Provides

LMC Exporter lets consumers:

-   Discover visible LMC server roots from one or more configured `server_key` values.
-   Select an application instance, either automatically or using an optional `instance` hint.
-   Subscribe to relevant child objects and variables beneath the selected root.
-   Convert observed values into Prometheus metric families.
-   Expose metrics through a Prometheus scrape endpoint or stdout snapshot mode.
-   Limit monitoring to selected applications, targets, classes, seed-path groups, seed paths, or named metric scopes.

It is not intended to expose every object in a full LMC tree by default. Instead, it is designed for **application-specific metric mappings** and **targeted scrape configuration**, allowing clients to collect only the metrics relevant to a given application or service.

* * *

## Supported Applications and Metric Sets

The current built-in RTDS application metric sets include:

-   `ads`
-   `adh`
-   `ats`
-   `rtc`
-   `rrcp_trans`

These values are used in configuration to tell the exporter which application-specific metric mapping set to expose.

Metrics are Prometheus-only at runtime. Although the current schema is OTLP-derived, the exporter does **not** provide OTLP transport; it renders Prometheus text exposition for scraping.

* * *

## Typical Deployment Model

A typical deployment consists of:

1.  A Linux Server running an RTDS Component with Shared Memory Configured.
2.  A licensed `lmc_exporter` binary.
3.  A TOML configuration file defining shared-memory connection details, target selection, HTTP settings, license path, and optional metric filtering.
4.  A Prometheus-compatible monitoring system scraping the configured endpoint.

The HTTP listener serves metrics on the configured bind address, port, and path. The default path is usually `/metrics`.

Example scrape:

```
http://127.0.0.1:9464/metrics?server_key=82
```

Query-routed scraping by `server_key` is the standard approach when multiple targets are configured.

* * *
