Service Monitoring 2026-04-09 14:07:25 UTC - 1h31m36s

Now: 2026-04-09 15:39:01 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 (8 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 (8 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 15:37:26 UTC
Ago1m35s
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 15:37:26 UTC
Ago1m35s
LayerRows
Observed Position749
Observed Track148

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

TableExistsRowsLatestAgoError
aerodromesyes56012026-04-06 19:20:53 UTC2d20h18m8s
noaa_metarsyes1876082026-04-09 23:51:00 UTCnow
noaa_tafsyes128072026-04-09 15:34:00 UTC5m1s
roshydro_metarsyes1014972026-04-28 01:00:00 UTCnow
roshydro_tafsyes124902026-05-31 14:31:00 UTCnow
active_tropical_cyclonesyes1262026-04-09 15:37:26 UTC1m35s
recent_tropical_cyclonesyes8972026-04-09 15:37:26 UTC1m35s
roshydro_opmet_processed_filesyes1583752026-04-09 15:38:37 UTC24s
noaa_cache_runsyes598482026-04-09 15:38:39 UTC22s
noaa_ingest_stateyes2
opmetdatayes846132026-04-09 15:34:37 UTC4m24s
opmeterroryes0
sigmet_geoyes430632026-04-09 15:34:37 UTC4m24s
airmet_geoyes115132026-04-09 15:03:37 UTC35m24s
gamet_geoyes300372026-04-09 11:40:03 UTC3h58m58s

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-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
  }
]