geopm 3.1.1.dev579+g75d9c8b9
GEOPM - Global Extensible Open Power Manager
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RuntimeStats.hpp
Go to the documentation of this file.
1/*
2 * Copyright (c) 2015 - 2025 Intel Corporation
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5
6#ifndef RUNTIMESTATS_HPP_INCLUDE
7#define RUNTIMESTATS_HPP_INCLUDE
8
9#include <vector>
10#include <string>
11#include <cstdint>
12
13namespace geopm
14{
17 {
18 public:
19 RuntimeStats() = delete;
20 RuntimeStats(const RuntimeStats &other) = delete;
21 RuntimeStats &operator=(const RuntimeStats &other) = delete;
23 RuntimeStats(const std::vector<std::string> &metric_names);
25 virtual ~RuntimeStats() = default;
29 int num_metric(void) const;
36 std::string metric_name(int metric_idx) const;
43 uint64_t count(int metric_idx) const;
50 double first(int metric_idx) const;
57 double last(int metric_idx) const;
64 double min(int metric_idx) const;
71 double max(int metric_idx) const;
78 double mean(int metric_idx) const;
85 double std(int metric_idx) const;
87 void reset(void);
94 void update(const std::vector<double> &sample);
95 private:
96 void check_index(int metric_idx, const std::string &func, int line) const;
97 struct stats_s {
98 stats_s() : count(0), first(0.0), last(0.0), min(0.0), max(0.0), m_1(0.0), m_2(0.0) {}
99 stats_s &operator=(const stats_s &other);
100 stats_s(const stats_s &other) = delete;
101 ~stats_s() = default;
102 uint64_t count;
103 double first;
104 double last;
105 double min;
106 double max;
107 double m_1; // sum of all sampled values
108 double m_2; // sum of the square of all sampled values
109 };
110 const std::vector<std::string> m_metric_names;
111 std::vector<stats_s> m_metric_stats;
112 };
113}
114
115#endif
Class that aggregates statistics without buffered data.
Definition RuntimeStats.hpp:17
RuntimeStats & operator=(const RuntimeStats &other)=delete
double last(int metric_idx) const
Last non-null value sampled.
Definition RuntimeStats.cpp:57
void update(const std::vector< double > &sample)
Update statistics with new sample.
Definition RuntimeStats.cpp:126
double max(int metric_idx) const
Maximum value sampled.
Definition RuntimeStats.cpp:77
virtual ~RuntimeStats()=default
Default virtual destructor.
double std(int metric_idx) const
Estimate of standard deviation.
Definition RuntimeStats.cpp:98
void reset(void)
Reset all aggregated statistics.
Definition RuntimeStats.cpp:117
double mean(int metric_idx) const
Mean value sampled.
Definition RuntimeStats.cpp:87
RuntimeStats(const RuntimeStats &other)=delete
uint64_t count(int metric_idx) const
Number of non-null values sampled.
Definition RuntimeStats.cpp:41
std::string metric_name(int metric_idx) const
Name of one metrics.
Definition RuntimeStats.cpp:35
double first(int metric_idx) const
First non-null value sampled.
Definition RuntimeStats.cpp:47
int num_metric(void) const
Number of metrics aggregated.
Definition RuntimeStats.cpp:22
double min(int metric_idx) const
Minimum value sampled.
Definition RuntimeStats.cpp:67
Definition Agg.cpp:20