openwrt-packages/utils/prometheus-node-exporter-ucode/files/extra/ltq-dsl.uc

73 lines
2.6 KiB
Ucode

const x = ubus.call("dsl", "metrics");
if (!x)
return false;
gauge("dsl_info")({
atuc_vendor: x.atu_c.vendor,
atuc_system_vendor: x.atu_c.system_vendor,
chipset: x.chipset,
firmware_version: x.firmware_version,
api_version: x.api_version,
driver_version: x.driver_version,
}, 1);
gauge("dsl_line_info")({
annex: x.annex,
standard: x.standard,
mode: x.mode,
profile: x.profile,
}, 1);
gauge("dsl_up")({ detail: x.state }, x.up);
gauge("dsl_uptime_seconds")(null, x.uptime);
gauge("dsl_line_attenuation_db")
({ direction: "down" }, x.downstream.latn)
({ direction: "up" }, x.upstream.latn);
gauge("dsl_signal_attenuation_db")
({ direction: "down" }, x.downstream.satn)
({ direction: "up" }, x.upstream.satn);
gauge("dsl_signal_to_noise_margin_db")
({ direction: "down" }, x.downstream.snr)
({ direction: "up" }, x.upstream.snr);
gauge("dsl_aggregated_transmit_power_db")
({ direction: "down" }, x.downstream.actatp)
({ direction: "up" }, x.upstream.actatp);
if (x.downstream.interleave_delay)
gauge("dsl_latency_seconds")
({ direction: "down" }, x.downstream.interleave_delay / 1000000.0)
({ direction: "up" }, x.upstream.interleave_delay / 1000000.0);
gauge("dsl_datarate")
({ direction: "down" }, x.downstream.data_rate)
({ direction: "up" }, x.upstream.data_rate);
gauge("dsl_max_datarate")
({ direction: "down" }, x.downstream.attndr)
({ direction: "up" }, x.upstream.attndr);
counter("dsl_error_seconds_total")
({ err: "forward error correction", loc: "near" }, x.errors.near.fecs)
({ err: "forward error correction", loc: "far" }, x.errors.far.fecs)
({ err: "errored", loc: "near" }, x.errors.near.es)
({ err: "errored", loc: "far" }, x.errors.far.es)
({ err: "severely errored", loc: "near" }, x.errors.near.ses)
({ err: "severely errored", loc: "far" }, x.errors.far.ses)
({ err: "loss of signal", loc: "near" }, x.errors.near.loss)
({ err: "loss of signal", loc: "far" }, x.errors.far.loss)
({ err: "unavailable", loc: "near" }, x.errors.near.uas)
({ err: "unavailable", loc: "far" }, x.errors.far.uas);
counter("dsl_errors_total")
({ err: "header error code error", loc: "near" }, x.errors.near.hec)
({ err: "header error code error", loc: "far" }, x.errors.far.hec)
({ err: "non pre-emptive crc error", loc: "near" }, x.errors.near.crc_p)
({ err: "non pre-emptive crc error", loc: "far" }, x.errors.far.crc_p)
({ err: "pre-emptive crc error", loc: "near" }, x.errors.near.crcp_p)
({ err: "pre-emptive crc error", loc: "far" }, x.errors.far.crcp_p);
if (x.erb)
counter("dsl_erb_total")
({ counter: "sent" }, x.erb.sent)
({ counter: "discarded" }, x.erb.discarded);