# MarketsIO Receiver

The MarketsIO Receiver collects OpenTelemetry metrics from MarketsIO monitoring segments for APX, PGX, and APG applications. Each receiver instance monitors one logical segment.

<table><caption class="sr-only">MarketsIO Receiver</caption><thead><tr><th scope="col">Property</th><th scope="col">Value</th></tr></thead><tbody><tr><td>Component ID</td><td><code>marketsioreceiver</code></td></tr><tr><td>Type</td><td>Receiver</td></tr><tr><td>Signal</td><td>Metrics</td></tr><tr><td>Applications</td><td>APX, PGX, APG</td></tr><tr><td>Availability</td><td>PHO Collector distribution</td></tr></tbody></table>

## Capabilities

-   Monitors APX, PGX, and APG applications.
-   Selects telemetry by MarketsIO source class.
-   Reports segment availability and discovered entity counts.
-   Emits application telemetry under the `mio.*` namespace.
-   Supports multiple named receiver instances for multiple segments.

## Prerequisites

-   A Linux host with access to the MarketsIO monitoring segment.
-   Read permission for the Collector service account.
-   The segment’s logical key.
-   At least one source class to monitor.
-   A PHO licence with one `marketsioreceiver` entitlement per configured instance.

## Configuration

<table><caption class="sr-only">Configuration</caption><thead><tr><th scope="col">Setting</th><th scope="col">Required</th><th scope="col">Default</th><th scope="col">Description</th></tr></thead><tbody><tr><td><code>application</code></td><td>Yes</td><td>—</td><td><code>APX</code>, <code>PGX</code>, or <code>APG</code></td></tr><tr><td><code>segment_key</code></td><td>Yes</td><td>—</td><td>Logical MarketsIO segment name</td></tr><tr><td><code>collection_interval</code></td><td>No</td><td><code>30s</code></td><td>Collection frequency</td></tr><tr><td><code>metric_groups.enabled_source_classes</code></td><td>Yes</td><td>—</td><td>Source classes to collect</td></tr></tbody></table>

The segment key is a logical MarketsIO name such as `EventStream.apx`, not a filesystem path. Source-class names are exact and case-sensitive.

### Example

```
extensions:
  pho_license:
    file: /etc/otelcol/license.json

receivers:
  marketsioreceiver/apx-primary:
    application: APX
    segment_key: EventStream.apx
    collection_interval: 30s
    metric_groups:
      enabled_source_classes:
        - AxisContext
        - DispatcherMonitor
        - EtaConnection

processors:
  batch: {}

exporters:
  otlp:
    endpoint: telemetry-gateway.example.com:4317

service:
  extensions: [pho_license]
  pipelines:
    metrics:
      receivers: [marketsioreceiver/apx-primary]
      processors: [batch]
      exporters: [otlp]
```

For multiple segments, configure multiple named instances:

```
receivers:
  marketsioreceiver/apx-primary:
    application: APX
    segment_key: EventStream.apx
    metric_groups:
      enabled_source_classes: [AxisContext, DispatcherMonitor]

  marketsioreceiver/pgx-primary:
    application: PGX
    segment_key: EventStream.pgx
    metric_groups:
      enabled_source_classes: [AxisContext, EtaConnection]
```

## Supported source classes

The available set varies by application and release. Supported classes include:

-   `APEngine`, `APService`, `APSession`, `APUserService`
-   `AxisContext`, `AxisGroupMgr`, `AxisServer`, `AxisService`
-   `DispatcherMonitor`
-   `EtaConnection`, `EtaServer`
-   `EventStream`
-   `GtpConnection`, `GtpServer`, `GtpStats`
-   `GtwyEngine`, `GtwyService`, `GtwySession`, `GtwySessionService`
-   `LoadBalancerEngine`, `LoadBalancerServer`, `LoadBalancerService`
-   `MuxConnection`
-   `QosEngine`
-   `ThreadContext`, `ThreadMgr`, `ThreadStats`
-   `VcEngine`, `VcService`

Consult the PHO-provided application metric catalogue before enabling a class that may not be present in the selected application.

## Source Classes by Application

The MarketsIO receiver supports the APX, PGX, and APG applications. Source class names are exact and case-sensitive.

### APX

APX provides 22 source classes:

-   `APEngine`
-   `APService`
-   `APSession`
-   `APUserService`
-   `AxisContext`
-   `AxisGroupMgr`
-   `AxisService`
-   `DispatcherMonitor`
-   `EtaConnection`
-   `EtaServer`
-   `EventStream`
-   `GtpConnection`
-   `GtpServer`
-   `GtpStats`
-   `GtwyEngine`
-   `GtwySession`
-   `LoadBalancerEngine`
-   `LoadBalancerService`
-   `QosEngine`
-   `ThreadMgr`
-   `ThreadStats`
-   `VcEngine`

### PGX

PGX provides 18 source classes:

-   `APEngine`
-   `APService`
-   `APSession`
-   `AxisContext`
-   `AxisGroupMgr`
-   `AxisService`
-   `DispatcherMonitor`
-   `EtaConnection`
-   `EventStream`
-   `GtpConnection`
-   `GtpServer`
-   `GtpStats`
-   `GtwyEngine`
-   `GtwySession`
-   `QosEngine`
-   `ThreadMgr`
-   `ThreadStats`
-   `VcEngine`

### APG

APG provides 26 source classes:

-   `APEngine`
-   `APService`
-   `APSession`
-   `APUserService`
-   `AxisContext`
-   `AxisGroupMgr`
-   `AxisServer`
-   `AxisService`
-   `DispatcherMonitor`
-   `EtaConnection`
-   `EtaServer`
-   `EventStream`
-   `GtwyEngine`
-   `GtwyService`
-   `GtwySession`
-   `GtwySessionService`
-   `LoadBalancerEngine`
-   `LoadBalancerServer`
-   `LoadBalancerService`
-   `MuxConnection`
-   `QosEngine`
-   `ThreadContext`
-   `ThreadMgr`
-   `ThreadStats`
-   `VcEngine`
-   `VcService`

## Receiver telemetry

<table><caption class="sr-only">Receiver telemetry</caption><thead><tr><th scope="col">Metric</th><th scope="col">Unit</th><th scope="col">Description</th></tr></thead><tbody><tr><td><code>marketsio.receiver.up</code></td><td><code>1</code></td><td>Whether the segment supplied a valid active snapshot</td></tr><tr><td><code>marketsio.receiver.entities</code></td><td><code>1</code></td><td>Entities found in each enabled source class</td></tr><tr><td><code>marketsio.receiver.variables</code></td><td><code>1</code></td><td>Monitored variables found in each enabled source class</td></tr></tbody></table>

Application metrics are emitted under `mio.*`. Depending on the application and selected classes, these cover:

-   Application and service health.
-   Sessions and connections.
-   Dispatcher and gateway activity.
-   Processing engines.
-   Queues and throughput.
-   Thread activity.
-   Quality-of-service information.
-   Load-balancing services.

Useful resource attributes include `marketsio.application`, `marketsio.segment_key`, `service.name`, and `service.version`. Entity metrics carry the identifiers appropriate to their source class.

## Operational behaviour

-   Only selected source classes are emitted.
-   An inactive or unavailable segment is represented by `marketsio.receiver.up = 0`.
-   Invalid applications, unknown or duplicate source classes, and invalid segment keys are rejected at startup.
-   Metrics without a valid current value are omitted rather than reported as misleading zeroes.

## Troubleshooting

<table><caption class="sr-only">Troubleshooting</caption><thead><tr><th scope="col">Symptom</th><th scope="col">Recommended action</th></tr></thead><tbody><tr><td><code>marketsio.receiver.up</code> is <code>0</code></td><td>Confirm the MarketsIO application is running and the configured segment is active</td></tr><tr><td>Receiver cannot access the segment</td><td>Verify the Collector service account’s permissions</td></tr><tr><td>Unknown source-class error</td><td>Check the spelling, case, and availability of the class for the selected application</td></tr><tr><td>Expected application metrics are absent</td><td>Confirm the relevant source class is enabled</td></tr><tr><td>A second instance does not start</td><td>Confirm the licence provides sufficient capacity for all instances</td></tr></tbody></table>
