Service Monitoring
Now: 2026-04-09 15:39:01 UTCAction trace:enabledTrace file:
/app/tmp/service_actions.logPostgreSQL
Status:connected
Config:
DB_URL / DATABASE_URLValue:
postgres://weather:***@new_weather_db/weatherConnection:
postgres://new_weather_db/weatherCheck: OK (0 ms)
METAR decoder
Status:connected
Config:
METAR_TAF_DECODE_URL / METS_DECODER_URLValue:
http://metar_taf_parser:7000Health URL:
http://metar_taf_parser:7000/healthcheckHTTP: 200 (8 ms)
TAF decoder
Status:connected
Config:
METAR_TAF_DECODE_URL / METS_DECODER_URLValue:
http://metar_taf_parser:7000Health URL:
http://metar_taf_parser:7000/healthcheckHTTP: 200 (8 ms)
Потоки данных: что собираем и куда пишем
| Pipeline | Source | Collected data | Destination tables |
|---|---|---|---|
| NOAA METAR | NOAA metars.cache.csv.gz | METAR/SPECI: ICAO, observed_at, raw_text, weather, wind, pressure, clouds | noaa_metars noaa_cache_runs noaa_ingest_state aerodromes |
| NOAA TAF | NOAA tafs.cache.xml.gz | TAF: ICAO, issued/valid range, raw_text, decoded forecast groups | noaa_tafs noaa_cache_runs noaa_ingest_state |
| ArcGIS Tropical Cyclones | ArcGIS Active_Hurricanes_v1 FeatureServer | Observed/forecast positions, tracks, cones, warnings, wind swaths and radii polygons | active_tropical_cyclones |
| ArcGIS Recent Tropical Cyclones | ArcGIS Recent_Hurricanes_v1 FeatureServer | Observed positions, observed tracks, observed wind swaths for recent systems | recent_tropical_cyclones |
| Roshydro ingest | FTP *.b files (ROSHYDRO_FTP_*) | METAR/TAF/OPMET batches + parser outputs + file processing stats | roshydro_metars roshydro_tafs roshydro_opmet_processed_files aerodromes opmetdata sigmet_geo airmet_geo gamet_geo |
| Roshydro OPMET parity (code present, runtime switch pending) | Same FTP *.b, ETX/=//END PART splitting | AIRMET/SIGMET/GAMET normalized records, parse/build errors, geo projections | opmetdata opmeterror sigmet_geo airmet_geo gamet_geo |
ArcGIS Tropical Cyclones
| Exists | yes |
|---|---|
| Rows | 126 |
| Distinct storms | 3 |
| Latest fetch | 2026-04-09 15:37:26 UTC |
| Ago | 1m35s |
| Layer | Rows |
|---|---|
| Forecast Error Cone and Danger Area | 3 |
| Forecast Position | 20 |
| Forecast Track | 5 |
| Observed Position | 81 |
| Observed Track | 17 |
ArcGIS Recent Tropical Cyclones
| Exists | yes |
|---|---|
| Rows | 897 |
| Distinct storms | 23 |
| Latest fetch | 2026-04-09 15:37:26 UTC |
| Ago | 1m35s |
| Layer | Rows |
|---|---|
| Observed Position | 749 |
| Observed Track | 148 |
Таблицы и последние изменения данных
| Table | Exists | Rows | Latest | Ago | Error |
|---|---|---|---|---|---|
aerodromes | yes | 5601 | 2026-04-06 19:20:53 UTC | 2d20h18m8s | — |
noaa_metars | yes | 187608 | 2026-04-09 23:51:00 UTC | now | — |
noaa_tafs | yes | 12807 | 2026-04-09 15:34:00 UTC | 5m1s | — |
roshydro_metars | yes | 101497 | 2026-04-28 01:00:00 UTC | now | — |
roshydro_tafs | yes | 12490 | 2026-05-31 14:31:00 UTC | now | — |
active_tropical_cyclones | yes | 126 | 2026-04-09 15:37:26 UTC | 1m35s | — |
recent_tropical_cyclones | yes | 897 | 2026-04-09 15:37:26 UTC | 1m35s | — |
roshydro_opmet_processed_files | yes | 158375 | 2026-04-09 15:38:37 UTC | 24s | — |
noaa_cache_runs | yes | 59848 | 2026-04-09 15:38:39 UTC | 22s | — |
noaa_ingest_state | yes | 2 | — | — | — |
opmetdata | yes | 84613 | 2026-04-09 15:34:37 UTC | 4m24s | — |
opmeterror | yes | 0 | — | — | — |
sigmet_geo | yes | 43063 | 2026-04-09 15:34:37 UTC | 4m24s | — |
airmet_geo | yes | 11513 | 2026-04-09 15:03:37 UTC | 35m24s | — |
gamet_geo | yes | 30037 | 2026-04-09 11:40:03 UTC | 3h58m58s | — |
Runtime env snapshot
| Variable | Value |
|---|---|
ROSHYDRO_JOB_INTERVAL_MIN | — |
NOAA_METAR_JOB_INTERVAL_MIN | — |
NOAA_TAF_JOB_INTERVAL_MIN | — |
ARCGIS_TROPICAL_CYCLONES_JOB_INTERVAL_MIN | — |
ARCGIS_RECENT_TROPICAL_CYCLONES_JOB_INTERVAL_MIN | — |
NOAA_METAR_CACHE_URL | — |
NOAA_TAF_CACHE_URL | — |
ARCGIS_TROPICAL_CYCLONES_URL | — |
ARCGIS_RECENT_TROPICAL_CYCLONES_URL | — |
ROSHYDRO_FTP_HOST | 193.7.166.1 |
ROSHYDRO_FTP_REMOTE_GLOB | — |
OPMET_ERROR_RETENTION_HOURS | — |
OPMET_ERROR_CLEANUP_INTERVAL_MIN | — |
METS_DECODER_URL | http://metar_taf_parser:7000 |
ASG_MET_PARSER | http://old_meteo_text_parser:5001 |
ACTION_TRACE_ENABLED | true |
OPMET errors
Top error types:
| created_at | opmet_type | error_type | message | opmetdata_id | original_file |
|---|
Temporary action trace (TEST)
Это временный функционал для тестирования. После завершения тестов удалить:src/app/services/support/action_recorder.rb, маршрут/monitor/actions и вызовыActionRecorder.record(...)
[
{
"at": "2026-04-09T15:39:01Z",
"source": "api.monitor",
"status": "info",
"action": "monitor_requested",
"details": null
},
{
"at": "2026-04-09T15:38:40Z",
"source": "orchestrator.arcgis.recent_tropical_cyclones",
"status": "ok",
"action": "ingest_cycle_finished",
"details": {
"features_count": 897,
"layer_counts": {
"0": 749,
"1": 148,
"2": 0
}
}
},
{
"at": "2026-04-09T15:38:39Z",
"source": "orchestrator.noaa.metar",
"status": "ok",
"action": "ingest_cycle_finished",
"details": {
"messages_count": 381,
"skipped": 4753
}
},
{
"at": "2026-04-09T15:38:37Z",
"source": "orchestrator.roshydro",
"status": "ok",
"action": "ingest_cycle_finished",
"details": {
"files_count": 1
}
},
{
"at": "2026-04-09T15:38:37Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904104.b"
}
},
{
"at": "2026-04-09T15:38:36Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "files_detected",
"details": {
"count": 1
}
},
{
"at": "2026-04-09T15:38:33Z",
"source": "orchestrator.noaa.taf",
"status": "ok",
"action": "ingest_cycle_finished",
"details": {
"messages_count": 4,
"skipped": 2944
}
},
{
"at": "2026-04-09T15:38:32Z",
"source": "orchestrator.arcgis.tropical_cyclones",
"status": "ok",
"action": "ingest_cycle_finished",
"details": {
"features_count": 126,
"layer_counts": {
"0": 20,
"1": 81,
"2": 5,
"3": 17,
"4": 3,
"5": 0,
"7": 0,
"8": 0,
"9": 0,
"11": 0
}
}
},
{
"at": "2026-04-09T15:38:28Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "dependencies_ok",
"details": null
},
{
"at": "2026-04-09T15:38:26Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "ingest_cycle_started",
"details": null
},
{
"at": "2026-04-09T15:37:55Z",
"source": "orchestrator.roshydro",
"status": "ok",
"action": "ingest_cycle_finished",
"details": {
"files_count": 1
}
},
{
"at": "2026-04-09T15:37:30Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904103.b"
}
},
{
"at": "2026-04-09T15:37:30Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "files_detected",
"details": {
"count": 1
}
},
{
"at": "2026-04-09T15:37:26Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "dependencies_ok",
"details": null
},
{
"at": "2026-04-09T15:37:26Z",
"source": "orchestrator.arcgis.recent_tropical_cyclones",
"status": "info",
"action": "ingest_cycle_started",
"details": null
},
{
"at": "2026-04-09T15:37:26Z",
"source": "orchestrator.arcgis.tropical_cyclones",
"status": "info",
"action": "ingest_cycle_started",
"details": null
},
{
"at": "2026-04-09T15:37:26Z",
"source": "orchestrator.noaa.taf",
"status": "info",
"action": "ingest_cycle_started",
"details": null
},
{
"at": "2026-04-09T15:37:26Z",
"source": "orchestrator.noaa.metar",
"status": "info",
"action": "ingest_cycle_started",
"details": null
},
{
"at": "2026-04-09T15:37:26Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "ingest_cycle_started",
"details": null
},
{
"at": "2026-04-09T15:36:31Z",
"source": "orchestrator.roshydro",
"status": "ok",
"action": "ingest_cycle_finished",
"details": {
"files_count": 2
}
},
{
"at": "2026-04-09T15:36:30Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904102.b"
}
},
{
"at": "2026-04-09T15:36:30Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904101.b"
}
},
{
"at": "2026-04-09T15:36:30Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "files_detected",
"details": {
"count": 2
}
},
{
"at": "2026-04-09T15:36:26Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "dependencies_ok",
"details": null
},
{
"at": "2026-04-09T15:36:26Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "ingest_cycle_started",
"details": null
},
{
"at": "2026-04-09T15:35:30Z",
"source": "orchestrator.noaa.metar",
"status": "ok",
"action": "ingest_cycle_finished",
"details": {
"messages_count": 53,
"skipped": 5058
}
},
{
"at": "2026-04-09T15:35:30Z",
"source": "orchestrator.roshydro",
"status": "ok",
"action": "ingest_cycle_finished",
"details": {
"files_count": 2
}
},
{
"at": "2026-04-09T15:35:28Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904100.b"
}
},
{
"at": "2026-04-09T15:35:27Z",
"source": "orchestrator.noaa.taf",
"status": "ok",
"action": "ingest_cycle_finished",
"details": {
"messages_count": 10,
"skipped": 2938
}
},
{
"at": "2026-04-09T15:35:26Z",
"source": "orchestrator.noaa.metar",
"status": "info",
"action": "ingest_cycle_started",
"details": null
},
{
"at": "2026-04-09T15:34:30Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904099.b"
}
},
{
"at": "2026-04-09T15:34:30Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "files_detected",
"details": {
"count": 2
}
},
{
"at": "2026-04-09T15:34:26Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "dependencies_ok",
"details": null
},
{
"at": "2026-04-09T15:34:26Z",
"source": "orchestrator.noaa.taf",
"status": "info",
"action": "ingest_cycle_started",
"details": null
},
{
"at": "2026-04-09T15:34:26Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "ingest_cycle_started",
"details": null
},
{
"at": "2026-04-09T15:33:35Z",
"source": "orchestrator.noaa.metar",
"status": "ok",
"action": "ingest_cycle_finished",
"details": {
"messages_count": 228,
"skipped": 4880
}
},
{
"at": "2026-04-09T15:33:34Z",
"source": "orchestrator.roshydro",
"status": "ok",
"action": "ingest_cycle_finished",
"details": {
"files_count": 3
}
},
{
"at": "2026-04-09T15:33:33Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904098.b"
}
},
{
"at": "2026-04-09T15:33:32Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904097.b"
}
},
{
"at": "2026-04-09T15:33:30Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904096.b"
}
},
{
"at": "2026-04-09T15:33:30Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "files_detected",
"details": {
"count": 3
}
},
{
"at": "2026-04-09T15:33:26Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "dependencies_ok",
"details": null
},
{
"at": "2026-04-09T15:33:26Z",
"source": "orchestrator.noaa.metar",
"status": "info",
"action": "ingest_cycle_started",
"details": null
},
{
"at": "2026-04-09T15:33:26Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "ingest_cycle_started",
"details": null
},
{
"at": "2026-04-09T15:32:31Z",
"source": "orchestrator.roshydro",
"status": "ok",
"action": "ingest_cycle_finished",
"details": {
"files_count": 8
}
},
{
"at": "2026-04-09T15:32:31Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904095.b"
}
},
{
"at": "2026-04-09T15:32:31Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904094.b"
}
},
{
"at": "2026-04-09T15:32:30Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904093.b"
}
},
{
"at": "2026-04-09T15:32:30Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904092.b"
}
},
{
"at": "2026-04-09T15:32:30Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904091.b"
}
},
{
"at": "2026-04-09T15:32:30Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904090.b"
}
},
{
"at": "2026-04-09T15:32:30Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904089.b"
}
},
{
"at": "2026-04-09T15:32:30Z",
"source": "orchestrator.noaa.taf",
"status": "ok",
"action": "ingest_cycle_finished",
"details": {
"messages_count": 1,
"skipped": 2947
}
},
{
"at": "2026-04-09T15:32:30Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904088.b"
}
},
{
"at": "2026-04-09T15:32:30Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "files_detected",
"details": {
"count": 8
}
},
{
"at": "2026-04-09T15:32:25Z",
"source": "orchestrator.noaa.metar",
"status": "ok",
"action": "ingest_cycle_finished",
"details": {
"messages_count": 37,
"skipped": 5072
}
},
{
"at": "2026-04-09T15:31:26Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "dependencies_ok",
"details": null
},
{
"at": "2026-04-09T15:31:26Z",
"source": "orchestrator.noaa.taf",
"status": "info",
"action": "ingest_cycle_started",
"details": null
},
{
"at": "2026-04-09T15:31:26Z",
"source": "orchestrator.noaa.metar",
"status": "info",
"action": "ingest_cycle_started",
"details": null
},
{
"at": "2026-04-09T15:31:26Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "ingest_cycle_started",
"details": null
},
{
"at": "2026-04-09T15:30:31Z",
"source": "orchestrator.roshydro",
"status": "ok",
"action": "ingest_cycle_finished",
"details": {
"files_count": 3
}
},
{
"at": "2026-04-09T15:30:31Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904087.b"
}
},
{
"at": "2026-04-09T15:30:30Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904086.b"
}
},
{
"at": "2026-04-09T15:30:30Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904085.b"
}
},
{
"at": "2026-04-09T15:30:30Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "files_detected",
"details": {
"count": 3
}
},
{
"at": "2026-04-09T15:30:26Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "dependencies_ok",
"details": null
},
{
"at": "2026-04-09T15:30:26Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "ingest_cycle_started",
"details": null
},
{
"at": "2026-04-09T15:29:38Z",
"source": "orchestrator.noaa.metar",
"status": "ok",
"action": "ingest_cycle_finished",
"details": {
"messages_count": 51,
"skipped": 5110
}
},
{
"at": "2026-04-09T15:29:38Z",
"source": "orchestrator.roshydro",
"status": "ok",
"action": "ingest_cycle_finished",
"details": {
"files_count": 1
}
},
{
"at": "2026-04-09T15:29:37Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904084.b"
}
},
{
"at": "2026-04-09T15:29:37Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "files_detected",
"details": {
"count": 1
}
},
{
"at": "2026-04-09T15:29:32Z",
"source": "orchestrator.noaa.taf",
"status": "ok",
"action": "ingest_cycle_finished",
"details": {
"messages_count": 11,
"skipped": 2946
}
},
{
"at": "2026-04-09T15:29:27Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "dependencies_ok",
"details": null
},
{
"at": "2026-04-09T15:29:26Z",
"source": "orchestrator.noaa.metar",
"status": "info",
"action": "ingest_cycle_started",
"details": null
},
{
"at": "2026-04-09T15:29:26Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "ingest_cycle_started",
"details": null
},
{
"at": "2026-04-09T15:28:48Z",
"source": "orchestrator.roshydro",
"status": "ok",
"action": "ingest_cycle_finished",
"details": {
"files_count": 1
}
},
{
"at": "2026-04-09T15:28:30Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "processing_file",
"details": {
"filename": "UUUJ02904083.b"
}
},
{
"at": "2026-04-09T15:28:30Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "files_detected",
"details": {
"count": 1
}
},
{
"at": "2026-04-09T15:28:26Z",
"source": "orchestrator.roshydro",
"status": "info",
"action": "dependencies_ok",
"details": null
},
{
"at": "2026-04-09T15:28:26Z",
"source": "orchestrator.noaa.taf",
"status": "info",
"action": "ingest_cycle_started",
"details": null
}
]