Service Monitoring 2026-04-09 14:07:25 UTC - 28m15s

Now: 2026-04-09 14:35:41 UTCAction trace:enabledTrace file:/app/tmp/service_actions.log
PostgreSQL
Status:connected
Config:DB_URL / DATABASE_URL
Value:postgres://weather:***@new_weather_db/weather
Connection:postgres://new_weather_db/weather
Check: OK (0 ms)
METAR decoder
Status:connected
Config:METAR_TAF_DECODE_URL / METS_DECODER_URL
Value:http://metar_taf_parser:7000
Health URL:http://metar_taf_parser:7000/healthcheck
HTTP: 200 (7 ms)
TAF decoder
Status:connected
Config:METAR_TAF_DECODE_URL / METS_DECODER_URL
Value:http://metar_taf_parser:7000
Health URL:http://metar_taf_parser:7000/healthcheck
HTTP: 200 (7 ms)

Потоки данных: что собираем и куда пишем

PipelineSourceCollected dataDestination tables
NOAA METARNOAA metars.cache.csv.gzMETAR/SPECI: ICAO, observed_at, raw_text, weather, wind, pressure, cloudsnoaa_metars noaa_cache_runs noaa_ingest_state aerodromes
NOAA TAFNOAA tafs.cache.xml.gzTAF: ICAO, issued/valid range, raw_text, decoded forecast groupsnoaa_tafs noaa_cache_runs noaa_ingest_state
ArcGIS Tropical CyclonesArcGIS Active_Hurricanes_v1 FeatureServerObserved/forecast positions, tracks, cones, warnings, wind swaths and radii polygonsactive_tropical_cyclones
ArcGIS Recent Tropical CyclonesArcGIS Recent_Hurricanes_v1 FeatureServerObserved positions, observed tracks, observed wind swaths for recent systemsrecent_tropical_cyclones
Roshydro ingestFTP *.b files (ROSHYDRO_FTP_*)METAR/TAF/OPMET batches + parser outputs + file processing statsroshydro_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 splittingAIRMET/SIGMET/GAMET normalized records, parse/build errors, geo projectionsopmetdata opmeterror sigmet_geo airmet_geo gamet_geo

ArcGIS Tropical Cyclones

Existsyes
Rows126
Distinct storms3
Latest fetch2026-04-09 14:22:26 UTC
Ago13m14s
LayerRows
Forecast Error Cone and Danger Area3
Forecast Position20
Forecast Track5
Observed Position81
Observed Track17

ArcGIS Recent Tropical Cyclones

Existsyes
Rows897
Distinct storms23
Latest fetch2026-04-09 14:22:26 UTC
Ago13m14s
LayerRows
Observed Position749
Observed Track148

Таблицы и последние изменения данных

TableExistsRowsLatestAgoError
aerodromesyes56012026-04-06 19:20:53 UTC2d19h14m47s
noaa_metarsyes1873222026-04-09 23:51:00 UTCnow
noaa_tafsyes125392026-04-09 14:33:00 UTC2m41s
roshydro_metarsyes1013362026-04-28 01:00:00 UTCnow
roshydro_tafsyes122512026-05-31 14:31:00 UTCnow
active_tropical_cyclonesyes1262026-04-09 14:22:26 UTC13m14s
recent_tropical_cyclonesyes8972026-04-09 14:22:26 UTC13m14s
roshydro_opmet_processed_filesyes1582442026-04-09 14:35:39 UTC1s
noaa_cache_runsyes597962026-04-09 14:35:41 UTCnow
noaa_ingest_stateyes2
opmetdatayes845422026-04-09 14:35:27 UTC13s
opmeterroryes0
sigmet_geoyes429932026-04-09 14:35:37 UTC3s
airmet_geoyes115122026-04-09 14:06:29 UTC29m11s
gamet_geoyes300372026-04-09 11:40:03 UTC2h55m37s

Runtime env snapshot

VariableValue
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_HOST193.7.166.1
ROSHYDRO_FTP_REMOTE_GLOB
OPMET_ERROR_RETENTION_HOURS
OPMET_ERROR_CLEANUP_INTERVAL_MIN
METS_DECODER_URLhttp://metar_taf_parser:7000
ASG_MET_PARSERhttp://old_meteo_text_parser:5001
ACTION_TRACE_ENABLEDtrue

OPMET errors

Top error types:
created_atopmet_typeerror_typemessageopmetdata_idoriginal_file

Temporary action trace (TEST)

Это временный функционал для тестирования. После завершения тестов удалить:src/app/services/support/action_recorder.rb, маршрут/monitor/actions и вызовыActionRecorder.record(...)

[
  {
    "at": "2026-04-09T14:35:41Z",
    "source": "api.monitor",
    "status": "info",
    "action": "monitor_requested",
    "details": null
  },
  {
    "at": "2026-04-09T14:35:41Z",
    "source": "orchestrator.noaa.metar",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "messages_count": 444,
      "skipped": 4647
    }
  },
  {
    "at": "2026-04-09T14:35:40Z",
    "source": "orchestrator.roshydro",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "files_count": 4
    }
  },
  {
    "at": "2026-04-09T14:35:39Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903973.b"
    }
  },
  {
    "at": "2026-04-09T14:35:36Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903972.b"
    }
  },
  {
    "at": "2026-04-09T14:35:36Z",
    "source": "orchestrator.noaa.taf",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "messages_count": 43,
      "skipped": 2905
    }
  },
  {
    "at": "2026-04-09T14:35:26Z",
    "source": "orchestrator.noaa.metar",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-09T14:35:22Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903971.b"
    }
  },
  {
    "at": "2026-04-09T14:34:29Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903970.b"
    }
  },
  {
    "at": "2026-04-09T14:34:29Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "files_detected",
    "details": {
      "count": 4
    }
  },
  {
    "at": "2026-04-09T14:34:26Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "dependencies_ok",
    "details": null
  },
  {
    "at": "2026-04-09T14:34:26Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-09T14:34:26Z",
    "source": "orchestrator.noaa.taf",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-09T14:33:36Z",
    "source": "orchestrator.noaa.metar",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "messages_count": 70,
      "skipped": 4995
    }
  },
  {
    "at": "2026-04-09T14:33:36Z",
    "source": "orchestrator.roshydro",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "files_count": 1
    }
  },
  {
    "at": "2026-04-09T14:33:31Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903969.b"
    }
  },
  {
    "at": "2026-04-09T14:33:31Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "files_detected",
    "details": {
      "count": 1
    }
  },
  {
    "at": "2026-04-09T14:33:26Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "dependencies_ok",
    "details": null
  },
  {
    "at": "2026-04-09T14:33:26Z",
    "source": "orchestrator.noaa.metar",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-09T14:33:26Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-09T14:32:37Z",
    "source": "orchestrator.roshydro",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "files_count": 8
    }
  },
  {
    "at": "2026-04-09T14:32:36Z",
    "source": "orchestrator.noaa.taf",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "messages_count": 19,
      "skipped": 2928
    }
  },
  {
    "at": "2026-04-09T14:32:36Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903968.b"
    }
  },
  {
    "at": "2026-04-09T14:32:36Z",
    "source": "orchestrator.noaa.metar",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "messages_count": 67,
      "skipped": 5002
    }
  },
  {
    "at": "2026-04-09T14:32:36Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903967.b"
    }
  },
  {
    "at": "2026-04-09T14:32:32Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903966.b"
    }
  },
  {
    "at": "2026-04-09T14:32:20Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903965.b"
    }
  },
  {
    "at": "2026-04-09T14:32:13Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903964.b"
    }
  },
  {
    "at": "2026-04-09T14:31:59Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903963.b"
    }
  },
  {
    "at": "2026-04-09T14:31:43Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903962.b"
    }
  },
  {
    "at": "2026-04-09T14:31:31Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903961.b"
    }
  },
  {
    "at": "2026-04-09T14:31:31Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "files_detected",
    "details": {
      "count": 8
    }
  },
  {
    "at": "2026-04-09T14:31:26Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "dependencies_ok",
    "details": null
  },
  {
    "at": "2026-04-09T14:31:26Z",
    "source": "orchestrator.noaa.taf",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-09T14:31:26Z",
    "source": "orchestrator.noaa.metar",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-09T14:31:26Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-09T14:30:33Z",
    "source": "orchestrator.roshydro",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "files_count": 4
    }
  },
  {
    "at": "2026-04-09T14:30:32Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903960.b"
    }
  },
  {
    "at": "2026-04-09T14:30:32Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903959.b"
    }
  },
  {
    "at": "2026-04-09T14:30:31Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903958.b"
    }
  },
  {
    "at": "2026-04-09T14:30:31Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903957.b"
    }
  },
  {
    "at": "2026-04-09T14:30:31Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "files_detected",
    "details": {
      "count": 4
    }
  },
  {
    "at": "2026-04-09T14:30:26Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "dependencies_ok",
    "details": null
  },
  {
    "at": "2026-04-09T14:30:26Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-09T14:29:42Z",
    "source": "orchestrator.roshydro",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "files_count": 1
    }
  },
  {
    "at": "2026-04-09T14:29:41Z",
    "source": "orchestrator.noaa.metar",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "messages_count": 31,
      "skipped": 5112
    }
  },
  {
    "at": "2026-04-09T14:29:41Z",
    "source": "orchestrator.noaa.taf",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "messages_count": 74,
      "skipped": 2873
    }
  },
  {
    "at": "2026-04-09T14:29:41Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903956.b"
    }
  },
  {
    "at": "2026-04-09T14:29:41Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "files_detected",
    "details": {
      "count": 1
    }
  },
  {
    "at": "2026-04-09T14:29:27Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "dependencies_ok",
    "details": null
  },
  {
    "at": "2026-04-09T14:29:26Z",
    "source": "orchestrator.noaa.metar",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-09T14:29:26Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-09T14:29:14Z",
    "source": "orchestrator.roshydro",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "files_count": 1
    }
  },
  {
    "at": "2026-04-09T14:28:30Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903955.b"
    }
  },
  {
    "at": "2026-04-09T14:28:30Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "files_detected",
    "details": {
      "count": 1
    }
  },
  {
    "at": "2026-04-09T14:28:26Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "dependencies_ok",
    "details": null
  },
  {
    "at": "2026-04-09T14:28:26Z",
    "source": "orchestrator.noaa.taf",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-09T14:28:26Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-09T14:27:38Z",
    "source": "orchestrator.noaa.metar",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "messages_count": 355,
      "skipped": 4793
    }
  },
  {
    "at": "2026-04-09T14:27:37Z",
    "source": "orchestrator.roshydro",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "files_count": 2
    }
  },
  {
    "at": "2026-04-09T14:27:37Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903954.b"
    }
  },
  {
    "at": "2026-04-09T14:27:30Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903953.b"
    }
  },
  {
    "at": "2026-04-09T14:27:30Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "files_detected",
    "details": {
      "count": 2
    }
  },
  {
    "at": "2026-04-09T14:27:26Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "dependencies_ok",
    "details": null
  },
  {
    "at": "2026-04-09T14:27:26Z",
    "source": "orchestrator.noaa.metar",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-09T14:27:26Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-09T14:26:42Z",
    "source": "orchestrator.roshydro",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "files_count": 1
    }
  },
  {
    "at": "2026-04-09T14:26:42Z",
    "source": "orchestrator.noaa.taf",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "messages_count": 17,
      "skipped": 2930
    }
  },
  {
    "at": "2026-04-09T14:26:41Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903952.b"
    }
  },
  {
    "at": "2026-04-09T14:26:41Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "files_detected",
    "details": {
      "count": 1
    }
  },
  {
    "at": "2026-04-09T14:26:40Z",
    "source": "orchestrator.noaa.metar",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "messages_count": 62,
      "skipped": 5140
    }
  },
  {
    "at": "2026-04-09T14:25:26Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "dependencies_ok",
    "details": null
  },
  {
    "at": "2026-04-09T14:25:26Z",
    "source": "orchestrator.noaa.taf",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-09T14:25:26Z",
    "source": "orchestrator.noaa.metar",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-09T14:25:26Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-09T14:24:31Z",
    "source": "orchestrator.roshydro",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "files_count": 3
    }
  },
  {
    "at": "2026-04-09T14:24:31Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903951.b"
    }
  },
  {
    "at": "2026-04-09T14:24:30Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903950.b"
    }
  },
  {
    "at": "2026-04-09T14:24:30Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02903949.b"
    }
  },
  {
    "at": "2026-04-09T14:24:30Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "files_detected",
    "details": {
      "count": 3
    }
  }
]