73 lines
2.6 KiB
Plaintext
73 lines
2.6 KiB
Plaintext
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);
|