blob: 954220192b7cd0018fe98971f7afb327aa16f4f7 [file] [log] [blame]
// SPDX-FileCopyrightText: 2020 The Magma Authors.
// SPDX-FileCopyrightText: 2022 Open Networking Foundation <support@opennetworking.org>
//
// SPDX-License-Identifier: BSD-3-Clause
syntax = "proto3";
package magma.orc8r;
import "metrics.proto";
import "orc8r/protos/common.proto";
option go_package = "magma/orc8r/lib/go/protos";
// For each metric name tracked, we use an enum
enum MetricName {
// Prometheus metrics
process_start_time_seconds = 0;
process_virtual_memory_bytes = 1;
process_resident_memory_bytes = 2;
process_cpu_seconds_total = 3;
process_open_fds = 4;
process_max_fds = 5;
// subscriberdb metrics
s6a_auth_success = 6;
s6a_auth_failure = 7;
s6a_location_update = 8;
diameter_capabilities_exchange = 9;
diameter_watchdog = 10;
diameter_disconnect = 11;
// More prometheus metrics
python_info = 50;
// Metricsd metrics
service_metrics_collected = 60;
process_uptime_seconds = 61;
// mobilityd metrics
ip_address_allocated = 100;
ip_address_released = 101;
ip_already_allocated = 102;
ip_allocation_failure = 103;
// enodebd metrics
enodeb_mgmt_connected = 200;
enodeb_opstate_enabled = 201;
enodeb_rf_tx_enabled = 202;
enodeb_gps_connected = 203;
enodeb_ptp_connected = 204;
enodeb_mme_connected = 205;
rrc_estab_attempts = 206;
rrc_estab_successes = 207;
pdcp_user_plane_bytes_ul = 208;
pdcp_user_plane_bytes_dl = 209;
rrc_reestab_attempts = 210;
rrc_reestab_attempts_reconf_fail = 211;
rrc_reestab_attempts_ho_fail = 212;
rrc_reestab_attempts_other = 213;
rrc_reestab_successes = 214;
erab_estab_attempts = 215;
erab_estab_successes = 216;
erab_estab_failures = 217;
erab_release_requests = 218;
erab_release_requests_user_inactivity = 219;
erab_release_requests_normal = 220;
erab_release_requests_radio_resources_not_available = 221;
erab_release_requests_reduce_load = 222;
erab_release_requests_fail_in_radio_proc = 223;
erab_release_requests_eutran_reas = 224;
erab_release_requests_radio_radio_conn_lost = 225;
erab_release_requests_oam_intervention = 226;
enodeb_mgmt_configured = 227;
enodeb_reboot_timer_active = 228;
enodeb_reboots = 229;
enodeb_rf_tx_desired = 230;
// Kernsnoopd metrics
magma_bytes_sent_total = 260;
linux_bytes_sent_total = 261;
// Magmad metrics
magmad_ping_rtt_ms = 300;
cpu_percent = 301;
swap_memory_percent = 302;
virtual_memory_percent = 303;
disk_percent = 304;
bytes_sent = 305;
bytes_received = 306;
temperature = 307;
checkin_status = 308;
streamer_responses = 309;
mem_total = 310;
mem_available = 311;
mem_used = 312;
mem_free = 313;
bootstrap_exception = 314;
upgrader2_time_taken = 315;
upgrader2_error = 316;
upgrader2_prepared = 317;
upgrader2_downloaded = 318;
upgrader2_canary = 319;
upgrader2_stable = 320;
upgrader2_idle = 321;
unexpected_service_restarts = 322;
unattended_upgrade_status = 323;
service_restart_status = 324;
// Pipelined metrics
dp_send_msg_error = 350;
arp_default_gw_mac_error = 351;
openflow_error_msg = 352;
unknown_pkt_direction = 353;
network_iface_status = 354;
enforcement_rule_install_fail = 355;
enforcement_stats_rule_install_fail = 356;
///////////////////////////////
// GATEWAY FAILURES & ALERTS //
///////////////////////////////
mme_restarted = 400;
s1_reset_from_enb = 401;
// SCTP
sctp_reset = 410;
sctp_shutdown = 411;
// s6a
s6a_subscriberdb_connection_failure = 420;
s6a_auth_info_response_timer_expired = 421;
// UE attach, Serivce Request
duplicate_attach_request = 430;
initial_context_setup_failure_received = 431;
initial_context_setup_request_timer_expired = 432;
nas_attach_accept_timer_expired = 433;
nas_auth_rsp_timer_expired = 434;
nas_security_mode_command_timer_expired = 435;
security_mode_reject_received = 436;
authentication_failure = 437; // cause=mac_failure,resync,amf
mme_spgw_create_session_req = 438;
mme_spgw_create_session_rsp = 439;
mme_spgw_delete_session_req = 440;
mme_spgw_delete_session_rsp = 441;
// UE S1AP context
ue_context_release_request = 450;
ue_context_release_command_timer_expired = 451;
// Detach
implicit_detach_timer_expired = 452;
// eNB SCTP shutdown context clean up time
enb_sctp_shutdown_ue_clean_up_timer_expired = 453;
// Other errors
s1ap_error_ind_received = 480;
gtpu_error_ind_received = 481;
nas_non_delivery_indication_received = 482;
emm_status_received = 483;
emm_status_sent = 484;
////////////////////////
// GATEWAY PROCEDURES //
////////////////////////
mme_new_association = 500;
ue_attach = 501; // result=failure,accept,complete
service_request = 502;
ue_detach = 503; // cause=network_initiated,
// deregister_ue,implicit_detach,
// ue_initiated
spgw_create_session = 504;
spgw_delete_session = 505;
ue_pdn_connection = 506;
tracking_area_update = 507;
s1_setup = 508;
// Generic service metrics
service_errors = 550;
}
// Possible labels, used as metric_name{label_name=label_value}
enum MetricLabelName {
result = 0;
cause = 1;
tau_type = 2;
pdn_type = 3;
action = 4;
host = 5; // magmad_ping_rtt_ms
metric = 6; // magmad_ping_rtt_ms
patchlevel = 7; // python_info
minor = 8; // python_info
major = 9; // python_info
version = 10; // python_info
implementation = 11; // python_info
sensor = 12; // magmad_temperature
error_code = 13;
error_type = 14;
iface_name = 15; // pipelined network_iface_status
service_name = 16; // magmad unexpected_service_restarts
rule_id = 17; // pipelined rule install failures
imsi = 18; // pipelined rule install failures
dest_service = 19; // kernsnoopd name of destination service
binary_name = 20; // kernsnoopd name of linux binary
}
message MetricsContainer {
string gatewayId = 1;
// TODO: we should strip this out of metricsd (or duplicate it ourselves)
// Prometheus 2 no longer supports protobuf client model
repeated io.prometheus.client.MetricFamily family = 2;
}
message PushedMetric {
string metricName = 1;
double value = 2;
int64 timestampMS = 3;
repeated LabelPair labels = 4;
}
message LabelPair {
string name = 1;
string value = 2;
}
message PushedMetricsContainer {
string networkId = 1;
repeated PushedMetric metrics = 2;
}
service MetricsController {
// Report a collection of metrics from a service
rpc Collect(MetricsContainer) returns (Void) {}
// Push a collection of metrics to metricsd
rpc Push(PushedMetricsContainer) returns (Void) {}
}