Open Telemetry Metrics
Patriot can export system statistics in the Open Telemetry standard format for metrics. This is a standardised common format which is supported by many major system observability + monitoring platforms.
Supported Integrations
The Open Telemetry Supported Vendors List maintains an up-to-date list of compatible systems. The exact setup steps for each platform will vary, please consult your platform documentation for details on receiving OTLP metric data.
Patriot Configuration
In the Data Service configuration file Telemetry
section, set SendMetrics
to True
, and set the other settings to match the requirements of the destination server that will receive the OTLP metric data. Repeat this step for each Task Service as well.
{
"DataService": {
// ... other configuration ...
"Telemetry": {
"OpenTelemetry": {
"SendMetrics": true,
// Destination server
"Endpoint": "http://localhost:4317",
// Supported: Grpc (default) or HttpProtobuf
"Protocol": "Grpc",
// Optional headers to include in request (e.g. api key)
"Headers": "apikey=123,version=2"
}
}
}
}
You must restart the data service before the setting will take effect.
Data Service Metrics
Meter Name: patriot.data_service
Signal Processing Duration
Instrument Name | Instrument Type | Unit (UCUM) | Description |
---|---|---|---|
patriot.data_service.signal_processing.duration | Histogram | ms | Time taken to process a signal |
Attribute | Type | Description | Examples | Presence |
---|---|---|---|---|
patriot.client.port_no | string | The client port number of the processed signal | 01 ; 05 | For all logged signals |
patriot.action_plan.name | string | The final action plan of the processed signal | Fire Alarm ; Opening (Unset) | For all logged signals |
patriot.signal.is_test_mode | boolean | True, if the signal was processed as a test mode event | true | Only for test mode signals |
patriot.signal.non_logged_category | string | The reason the signal was processed but not logged | Non-Monitored ; Caller ID | Only for signals which were processed without being logged |
Signal Processing Queues
Instrument Name | Instrument Type | Unit (UCUM) | Description |
---|---|---|---|
patriot.data_service.signal_processing.queued_signals | UpDownCounter | {signal} | Number of signals currently queued for processing |
Attribute | Type | Description | Examples | Presence |
---|---|---|---|---|
patriot.signal_processing.queue_name | string | The queue name | recsigs_writer.pending_writes ; recsigs_reader.available | Always |
Signal Processing Workers
Instrument Name | Instrument Type | Unit (UCUM) | Description |
---|---|---|---|
patriot.data_service.signal_processing.active_workers | UpDownCounter | {worker} | Number of currently active signal processing workers |
Note: This metric has no attributes
Archiving Duration
Instrument Name | Instrument Type | Unit (UCUM) | Description |
---|---|---|---|
patriot.data_service.archiving.duration | Histogram | s | Time taken for archiving to complete |
Attribute | Type | Description | Examples | Presence |
---|---|---|---|---|
patriot.archiving.type | string | The type of archiving | daily ; periodic | Always |
Reminder Processing
Instrument Name | Instrument Type | Unit (UCUM) | Description |
---|---|---|---|
patriot.data_service.reminder_processing.reminders_processed | Counter | {reminder} | Number of reminders processed |
Attribute | Type | Description | Examples | Presence |
---|---|---|---|---|
patriot.reminder.category | string | The kind of reminder that was processed | auto_status_monitoring ; alarm_processing | Always |
Command Message Processing
Instrument Name | Instrument Type | Unit (UCUM) | Description |
---|---|---|---|
patriot.data_service.command_message_processing.messages_processed | Counter | {message} | Number of command messages processed |
Attribute | Type | Description | Examples | Presence |
---|---|---|---|---|
patriot.command_message.type | string | The kind of message that was processed | Poll ; ForwardedSignal | Always |
Command Message Processing Queue
Instrument Name | Instrument Type | Unit (UCUM) | Description |
---|---|---|---|
patriot.data_service.command_message_processing.queued_messages | UpDownCounter | {message} | Number of command messages queued for processing |
Note: This metric has no attributes
Pending Alarm Activations Count
Instrument Name | Instrument Type | Unit (UCUM) | Description |
---|---|---|---|
patriot.data_service.pending_activations.count | UpDownCounter | {activation} | Number of currently active alarm events |
Attribute | Type | Description | Examples | Presence |
---|---|---|---|---|
patriot.action_plan.name | string | The current action plan of the event | Fire Alarm ; Opening (Unset) | Always |
patriot.activation.status | string | The current status of the event | new | Always |
patriot.activation.warning_level | int | The current warning timer level of the event | 0 ; 1 ; 2 ; 3 | If action plan exists |
Only new
alarms are currently reported
Task Service Metrics
Meter Name: patriot.task_service
Signal Buffer Queue Length
Instrument Name | Instrument Type | Unit (UCUM) | Description |
---|---|---|---|
patriot.task_service.signal_buffer.queue_length | UpDownCounter | {raw_signal} | Number of signals currently buffered by the task service, awaiting delivery to the data service |
Attribute | Type | Description | Examples | Presence |
---|---|---|---|---|
messaging.destination.name | string | The destination data service for the buffered signal | patriot-data-server ; localhost | Always |
Signal Buffer Queue Length
Instrument Name | Instrument Type | Unit (UCUM) | Description |
---|---|---|---|
patriot.task.signals_received | Counter | {raw_signal} | Number of signals received by a Patriot task |
Attribute | Type | Description | Examples | Presence |
---|---|---|---|---|
patriot.raw_signal.source | string | The source task that generated the signal | Task 17: Surgard Serial ; | Always |
patriot.raw_signal.category | string | The category of the generated signal | bad_data ; system ; standard | Always |