const makeCarriers = <Type, In, Out>(
_: Metric.Metric<Type, In, Out>
) => ({
DPD: Metric.taggedWithLabels(_, [MetricLabel.make("carrier", "DPD")]).register(),
GLS: Metric.taggedWithLabels(_, [MetricLabel.make("carrier", "GLS")]).register(),
GLSEXPRESS: Metric.taggedWithLabels(_, [MetricLabel.make("carrier", "GLS Express")]).register()
})
const addCarriers = <Type, In, Out>(
_: Metric.Metric<Type, In, Out>
) => Object.assign(_, makeCarriers(_))
const makeSuccessFail = (_: Metric.Metric.Frequency<"success" | "failed">) => ({
success: _.pipe(Metric.withConstantInput("success" as const)).register().pipe((_) =>
Object.assign(_, { update: _(Effect.unit) })
),
failed: _.pipe(Metric.withConstantInput("failed" as const)).register().pipe((_) =>
Object.assign(_, { update: _(Effect.unit) })
)
})
const addSuccessFail = (_: Metric.Metric.Frequency<"success" | "failed">) => Object.assign(_, makeSuccessFail(_))
const makeCarriersSuccessFail = (
_: Metric.Metric.Frequency<"success" | "failed">
) => ({
DPD: Metric.taggedWithLabels(_, [MetricLabel.make("carrier", "DPD")]).pipe(addSuccessFail).register(),
GLS: Metric.taggedWithLabels(_, [MetricLabel.make("carrier", "GLS")]).pipe(addSuccessFail).register(),
GLSEXPRESS: Metric.taggedWithLabels(_, [MetricLabel.make("carrier", "GLS Express")]).pipe(addSuccessFail)
.register()
})
const addCarriersSuccessFail = (_: Metric.Metric.Frequency<string>) => Object.assign(_, makeCarriersSuccessFail(_))
export const labelCreationCounter = Metric.frequency("labels.created", "A counter for tracking label creation")
.register().pipe(addCarriersSuccessFail)
const makeCarriers = <Type, In, Out>(
_: Metric.Metric<Type, In, Out>
) => ({
DPD: Metric.taggedWithLabels(_, [MetricLabel.make("carrier", "DPD")]).register(),
GLS: Metric.taggedWithLabels(_, [MetricLabel.make("carrier", "GLS")]).register(),
GLSEXPRESS: Metric.taggedWithLabels(_, [MetricLabel.make("carrier", "GLS Express")]).register()
})
const addCarriers = <Type, In, Out>(
_: Metric.Metric<Type, In, Out>
) => Object.assign(_, makeCarriers(_))
const makeSuccessFail = (_: Metric.Metric.Frequency<"success" | "failed">) => ({
success: _.pipe(Metric.withConstantInput("success" as const)).register().pipe((_) =>
Object.assign(_, { update: _(Effect.unit) })
),
failed: _.pipe(Metric.withConstantInput("failed" as const)).register().pipe((_) =>
Object.assign(_, { update: _(Effect.unit) })
)
})
const addSuccessFail = (_: Metric.Metric.Frequency<"success" | "failed">) => Object.assign(_, makeSuccessFail(_))
const makeCarriersSuccessFail = (
_: Metric.Metric.Frequency<"success" | "failed">
) => ({
DPD: Metric.taggedWithLabels(_, [MetricLabel.make("carrier", "DPD")]).pipe(addSuccessFail).register(),
GLS: Metric.taggedWithLabels(_, [MetricLabel.make("carrier", "GLS")]).pipe(addSuccessFail).register(),
GLSEXPRESS: Metric.taggedWithLabels(_, [MetricLabel.make("carrier", "GLS Express")]).pipe(addSuccessFail)
.register()
})
const addCarriersSuccessFail = (_: Metric.Metric.Frequency<string>) => Object.assign(_, makeCarriersSuccessFail(_))
export const labelCreationCounter = Metric.frequency("labels.created", "A counter for tracking label creation")
.register().pipe(addCarriersSuccessFail)