| #include "tlbmc/redfish/routes/tlbmc_metrics.h" |
| |
| #include <functional> |
| |
| #include "absl/functional/bind_front.h" |
| #include "tlbmc/hal/shared_mem/metrics.h" |
| #include "tlbmc/hal/shared_mem/server.h" |
| #include "tlbmc/redfish/app.h" |
| #include "tlbmc/redfish/request.h" |
| #include "tlbmc/redfish/response.h" |
| |
| namespace milotic_tlbmc::redfish_metrics { |
| |
| namespace { |
| |
| void HandleTlbmcMetrics(const RedfishApp& app, const RedfishRequest& req, |
| RedfishResponse& resp) { |
| resp.SetKeyInJsonBody("/@odata.id", "/redfish/tlbmc/Metrics"); |
| resp.SetKeyInJsonBody("/@odata.type", "#TlbmcMetrics.v1_0_0.TlbmcMetrics"); |
| resp.SetKeyInJsonBody("/Name", "TlbmcMetrics"); |
| resp.SetKeyInJsonBody("/Description", "Tlbmc Metrics"); |
| resp.SetKeyInJsonBody( |
| "/Metrics", SharedMemoryServer::GetInstance().GetMetrics()->ToJson()); |
| resp.SetKeyInJsonBody("/BootupMetrics", |
| app.GetStore()->GetMetrics().ToJson()); |
| } |
| |
| } // namespace |
| |
| void RegisterRoutes(RedfishApp& app) { |
| TLBMC_ROUTE(app, "/redfish/tlbmc/Metrics/") |
| .methods(boost::beast::http::verb::get)( |
| absl::bind_front(HandleTlbmcMetrics, std::cref(app))); |
| } |
| |
| } // namespace milotic_tlbmc::redfish_metrics |