metrics: register inbound-trigger and outbound-service counters

This commit is contained in:
2026-09-15 16:26:09 +03:00
parent a19e5afd5e
commit 09479b5c48
2 changed files with 26 additions and 1 deletions
+15 -1
View File
@@ -10,6 +10,8 @@ module HomeAssistant.Runtime.Metrics
, buildUpdateArgs
, parseInfoDs
, schemaMatches
, AppMetrics (..)
, registerAppMetrics
, ensureRrd
, sampleAndUpdate
, metricsAction
@@ -28,7 +30,8 @@ import Data.Void (Void)
import Numeric (showHex)
import qualified Data.Text as T
import qualified Data.HashMap.Strict as HM
import qualified System.Metrics as M (Value (..), Sample, Store, sampleAll)
import qualified System.Metrics as M (Value (..), Sample, Store, createCounter, sampleAll)
import System.Metrics.Counter (Counter)
import System.Directory (doesFileExist, renameFile)
import System.Exit (ExitCode (..))
import System.Process (callProcess, readProcessWithExitCode)
@@ -67,6 +70,17 @@ buildSchema sample =
, Just dt <- [dsTypeOf val]
]
data AppMetrics = AppMetrics
{ amTriggersIn :: Counter
, amServicesOut :: Counter
}
registerAppMetrics :: M.Store -> IO AppMetrics
registerAppMetrics store =
AppMetrics
<$> M.createCounter "hass.trigger.in" store
<*> M.createCounter "hass.service.out" store
buildCreateArgs :: FilePath -> Int -> [(String, DsType)] -> [String]
buildCreateArgs path step specs =
["create", path, "--step", show step]