Files
open5gs/lib/metrics/prometheus/pager.h
Juraj Elias 794c63276e Open5GS JSON API for accessing UE, gNB, eNB, PDU data (#4093)
Open5GS has a lightweight HTTP server (already used for `/metrics`) embedded in each NF.
New optional JSON endpoints were added:

| NF  | Endpoint | Content |
| --- | --- | --- |
| **SMF** | `/pdu-info` | All currently connected UEs + their PDU sessions (IMSI/SUPI, DNN, IPs, S-NSSAI, QoS, state, etc.) |
| **AMF** | `/gnb-info` | All currently connected gNBs and their supported TAs, PLMNs, SCTP info, number of UEs |
| **AMF** | `/ue-info` | All currently connected NR UEs and their info, active gNB, tai, security, slices, am_policy |
| **MME** | `/enb-info` | All currently connected eNBs and their supported TAs, PLMNs, SCTP info, number of UEs |
| **MME** | `/ue-info` | All currently connected LTE UEs and their info, active eNB, tai, pdn info |

They are exposed on the same HTTP port used by Prometheus metrics (default `:9090`).

To reduce processor load when there are a large number of devices, the API includes a pager that limits output.

`/ue-info?page=0&page_size=100`

page in the range 0-n (0 is default),

`page=-1` to avoid paging

`page_size=100` (default and MAX)
2025-10-01 21:52:54 +09:00

39 lines
1.3 KiB
C

/*
* Copyright (C) 2025 by Juraj Elias <juraj.elias@gmail.com>
*
* This file is part of Open5GS.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef OGS_METRICS_PROM_PAGER_H
#define OGS_METRICS_PROM_PAGER_H
#include <stddef.h>
/* NF-specific optional pager setter signatures.
* NFs may assign these at init time. If left NULL, paging is ignored for that NF.
*/
typedef void (*ogs_metrics_pager_fn)(size_t page, size_t page_size);
/* Connected PDUs (SMF) */
extern ogs_metrics_pager_fn ogs_metrics_pdu_info_set_pager;
extern ogs_metrics_pager_fn ogs_metrics_ue_info_set_pager;
extern ogs_metrics_pager_fn ogs_metrics_gnb_info_set_pager;
extern ogs_metrics_pager_fn ogs_metrics_enb_info_set_pager;
#endif /* OGS_METRICS_PROM_PAGER_H */