Service Monitoring 2026-04-06 11:49:58 UTC - 2h55m38s

Now: 2026-04-06 14:45:37 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 (10 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 (10 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
Rows71
Distinct storms2
Latest fetch2026-04-06 14:35:00 UTC
Ago10m37s
LayerRows
Forecast Error Cone and Danger Area2
Forecast Position16
Forecast Track4
Observed Position41
Observed Track8

ArcGIS Recent Tropical Cyclones

Existsyes
Rows897
Distinct storms23
Latest fetch2026-04-06 14:35:00 UTC
Ago10m37s
LayerRows
Observed Position749
Observed Track148

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

TableExistsRowsLatestAgoError
aerodromesyes55992026-04-06 12:06:21 UTC2h39m15s
noaa_metarsyes1765972026-04-06 14:41:00 UTC4m37s
noaa_tafsyes119572026-04-06 14:41:00 UTC4m37s
roshydro_metarsyes1057242026-04-19 20:51:00 UTCnow
roshydro_tafsyes121652026-05-31 14:31:00 UTCnow
active_tropical_cyclonesyes712026-04-06 14:35:00 UTC10m37s
recent_tropical_cyclonesyes8972026-04-06 14:35:00 UTC10m37s
roshydro_opmet_processed_filesyes1492892026-04-06 14:45:26 UTC10s
noaa_cache_runsyes562412026-04-06 14:45:26 UTC10s
noaa_ingest_stateyes2
opmetdatayes782642026-04-06 14:43:06 UTC2m30s
opmeterroryes0
sigmet_geoyes398732026-04-06 14:43:06 UTC2m30s
airmet_geoyes107682026-04-06 14:31:05 UTC14m32s
gamet_geoyes276232026-04-06 12:01:12 UTC2h44m24s

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-06T14:45:37Z",
    "source": "api.monitor",
    "status": "info",
    "action": "monitor_requested",
    "details": null
  },
  {
    "at": "2026-04-06T14:45:26Z",
    "source": "orchestrator.roshydro",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "files_count": 3
    }
  },
  {
    "at": "2026-04-06T14:45:26Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02895018.b"
    }
  },
  {
    "at": "2026-04-06T14:45:26Z",
    "source": "orchestrator.noaa.taf",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "messages_count": 16,
      "skipped": 2833
    }
  },
  {
    "at": "2026-04-06T14:45:26Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02895017.b"
    }
  },
  {
    "at": "2026-04-06T14:45:26Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02895016.b"
    }
  },
  {
    "at": "2026-04-06T14:45:26Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "files_detected",
    "details": {
      "count": 3
    }
  },
  {
    "at": "2026-04-06T14:45:01Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "dependencies_ok",
    "details": null
  },
  {
    "at": "2026-04-06T14:45:00Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-06T14:44:51Z",
    "source": "orchestrator.noaa.metar",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "messages_count": 34,
      "skipped": 5029
    }
  },
  {
    "at": "2026-04-06T14:44:42Z",
    "source": "orchestrator.roshydro",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "files_count": 1
    }
  },
  {
    "at": "2026-04-06T14:44:05Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02895015.b"
    }
  },
  {
    "at": "2026-04-06T14:44:05Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "files_detected",
    "details": {
      "count": 1
    }
  },
  {
    "at": "2026-04-06T14:44:00Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "dependencies_ok",
    "details": null
  },
  {
    "at": "2026-04-06T14:44:00Z",
    "source": "orchestrator.noaa.taf",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-06T14:44:00Z",
    "source": "orchestrator.noaa.metar",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-06T14:44:00Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-06T14:43:07Z",
    "source": "orchestrator.roshydro",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "files_count": 3
    }
  },
  {
    "at": "2026-04-06T14:43:07Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02895014.b"
    }
  },
  {
    "at": "2026-04-06T14:43:06Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02895013.b"
    }
  },
  {
    "at": "2026-04-06T14:43:06Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02895012.b"
    }
  },
  {
    "at": "2026-04-06T14:43:06Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "files_detected",
    "details": {
      "count": 3
    }
  },
  {
    "at": "2026-04-06T14:43:00Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "dependencies_ok",
    "details": null
  },
  {
    "at": "2026-04-06T14:43:00Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-06T14:42:21Z",
    "source": "orchestrator.noaa.metar",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "messages_count": 291,
      "skipped": 4772
    }
  },
  {
    "at": "2026-04-06T14:42:19Z",
    "source": "orchestrator.roshydro",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "files_count": 7
    }
  },
  {
    "at": "2026-04-06T14:42:19Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02895011.b"
    }
  },
  {
    "at": "2026-04-06T14:42:19Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02895010.b"
    }
  },
  {
    "at": "2026-04-06T14:42:19Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02895009.b"
    }
  },
  {
    "at": "2026-04-06T14:42:18Z",
    "source": "orchestrator.noaa.taf",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "messages_count": 52,
      "skipped": 2794
    }
  },
  {
    "at": "2026-04-06T14:42:18Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02895008.b"
    }
  },
  {
    "at": "2026-04-06T14:42:18Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02895007.b"
    }
  },
  {
    "at": "2026-04-06T14:42:07Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02895006.b"
    }
  },
  {
    "at": "2026-04-06T14:42:00Z",
    "source": "orchestrator.noaa.metar",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-06T14:41:05Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02895005.b"
    }
  },
  {
    "at": "2026-04-06T14:41:05Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "files_detected",
    "details": {
      "count": 7
    }
  },
  {
    "at": "2026-04-06T14:41:00Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "dependencies_ok",
    "details": null
  },
  {
    "at": "2026-04-06T14:41:00Z",
    "source": "orchestrator.noaa.taf",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-06T14:41:00Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-06T14:40:13Z",
    "source": "orchestrator.noaa.metar",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "messages_count": 471,
      "skipped": 4588
    }
  },
  {
    "at": "2026-04-06T14:40:08Z",
    "source": "orchestrator.roshydro",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "files_count": 1
    }
  },
  {
    "at": "2026-04-06T14:40:05Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02895004.b"
    }
  },
  {
    "at": "2026-04-06T14:40:05Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "files_detected",
    "details": {
      "count": 1
    }
  },
  {
    "at": "2026-04-06T14:40:00Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "dependencies_ok",
    "details": null
  },
  {
    "at": "2026-04-06T14:40:00Z",
    "source": "orchestrator.noaa.metar",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-06T14:40:00Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-06T14:39:29Z",
    "source": "orchestrator.noaa.metar",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "messages_count": 335,
      "skipped": 4732
    }
  },
  {
    "at": "2026-04-06T14:39:27Z",
    "source": "orchestrator.roshydro",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "files_count": 1
    }
  },
  {
    "at": "2026-04-06T14:39:27Z",
    "source": "orchestrator.noaa.taf",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "messages_count": 47,
      "skipped": 2796
    }
  },
  {
    "at": "2026-04-06T14:39:26Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02895003.b"
    }
  },
  {
    "at": "2026-04-06T14:39:26Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "files_detected",
    "details": {
      "count": 1
    }
  },
  {
    "at": "2026-04-06T14:39:01Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "dependencies_ok",
    "details": null
  },
  {
    "at": "2026-04-06T14:39:00Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-06T14:38:15Z",
    "source": "orchestrator.roshydro",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "files_count": 1
    }
  },
  {
    "at": "2026-04-06T14:38:05Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02895002.b"
    }
  },
  {
    "at": "2026-04-06T14:38:05Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "files_detected",
    "details": {
      "count": 1
    }
  },
  {
    "at": "2026-04-06T14:38:00Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "dependencies_ok",
    "details": null
  },
  {
    "at": "2026-04-06T14:38:00Z",
    "source": "orchestrator.noaa.taf",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-06T14:38:00Z",
    "source": "orchestrator.noaa.metar",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-06T14:38:00Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-06T14:37:07Z",
    "source": "orchestrator.roshydro",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "files_count": 3
    }
  },
  {
    "at": "2026-04-06T14:37:06Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02895001.b"
    }
  },
  {
    "at": "2026-04-06T14:37:05Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02895000.b"
    }
  },
  {
    "at": "2026-04-06T14:37:04Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02894999.b"
    }
  },
  {
    "at": "2026-04-06T14:37:04Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "files_detected",
    "details": {
      "count": 3
    }
  },
  {
    "at": "2026-04-06T14:37:00Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "dependencies_ok",
    "details": null
  },
  {
    "at": "2026-04-06T14:37:00Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-06T14:36:25Z",
    "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-06T14:36:22Z",
    "source": "orchestrator.noaa.metar",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "messages_count": 251,
      "skipped": 4815
    }
  },
  {
    "at": "2026-04-06T14:36:21Z",
    "source": "orchestrator.roshydro",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "files_count": 2
    }
  },
  {
    "at": "2026-04-06T14:36:19Z",
    "source": "orchestrator.noaa.taf",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "messages_count": 42,
      "skipped": 2800
    }
  },
  {
    "at": "2026-04-06T14:36:18Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02894998.b"
    }
  },
  {
    "at": "2026-04-06T14:36:16Z",
    "source": "orchestrator.arcgis.tropical_cyclones",
    "status": "ok",
    "action": "ingest_cycle_finished",
    "details": {
      "features_count": 71,
      "layer_counts": {
        "0": 16,
        "1": 41,
        "2": 4,
        "3": 8,
        "4": 2,
        "5": 0,
        "7": 0,
        "8": 0,
        "9": 0,
        "11": 0
      }
    }
  },
  {
    "at": "2026-04-06T14:36:00Z",
    "source": "orchestrator.noaa.metar",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-06T14:35:05Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "processing_file",
    "details": {
      "filename": "UUUJ02894997.b"
    }
  },
  {
    "at": "2026-04-06T14:35:05Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "files_detected",
    "details": {
      "count": 2
    }
  },
  {
    "at": "2026-04-06T14:35:00Z",
    "source": "orchestrator.roshydro",
    "status": "info",
    "action": "dependencies_ok",
    "details": null
  },
  {
    "at": "2026-04-06T14:35:00Z",
    "source": "orchestrator.arcgis.recent_tropical_cyclones",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-06T14:35:00Z",
    "source": "orchestrator.arcgis.tropical_cyclones",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  },
  {
    "at": "2026-04-06T14:35:00Z",
    "source": "orchestrator.noaa.taf",
    "status": "info",
    "action": "ingest_cycle_started",
    "details": null
  }
]