29#include <unordered_map>
30#include <unordered_set>
52 const std::unordered_map<std::string, std::string>& properties)>;
66 std::unordered_set<std::shared_ptr<MetricsReporter>> reporters);
73 const std::unordered_set<std::shared_ptr<MetricsReporter>>&
Reporters()
const;
76 std::unordered_set<std::shared_ptr<MetricsReporter>> reporters_;
95 const std::unordered_map<std::string, std::string>& properties);
114 static std::shared_ptr<MetricsReporter>
Combine(
115 std::shared_ptr<MetricsReporter> first, std::shared_ptr<MetricsReporter> second);
A MetricsReporter that delegates to multiple reporters.
Definition metrics_reporters.h:63
const std::unordered_set< std::shared_ptr< MetricsReporter > > & Reporters() const
The reporters contained in this composite.
Status Report(const MetricsReport &report) override
Report a metrics report.
Interface for reporting metrics from Iceberg operations.
Definition metrics_reporter.h:85
Factory class for creating and managing MetricsReporter instances.
Definition metrics_reporters.h:84
static std::shared_ptr< MetricsReporter > Combine(std::shared_ptr< MetricsReporter > first, std::shared_ptr< MetricsReporter > second)
Combine two reporters into one.
static Status Register(std::string_view reporter_type, MetricsReporterFactory factory)
Register a factory for a metrics reporter type.
static Result< std::unique_ptr< MetricsReporter > > Load(const std::unordered_map< std::string, std::string > &properties)
Load a metrics reporter based on properties.
Define symbol visibility macros for core Iceberg APIs.
Define metrics report dispatch APIs.
Core Apache Iceberg C++ APIs.
Definition arrow_io_util.h:33
constexpr std::string_view kMetricsReporterTypeNoop
Property value for the noop metrics reporter.
Definition metrics_reporters.h:45
std::function< Result< std::unique_ptr< MetricsReporter > >(const std::unordered_map< std::string, std::string > &properties)> MetricsReporterFactory
Function type for creating MetricsReporter instances.
Definition metrics_reporters.h:52
std::expected< T, E > Result
Result alias.
Definition result.h:88
constexpr std::string_view kMetricsReporterImpl
Property key for configuring the metrics reporter implementation.
Definition metrics_reporters.h:42
std::variant< ScanReport, CommitReport > MetricsReport
A metrics report, which can be either a ScanReport or CommitReport.
Definition metrics_reporter.h:59
Define Result, Status, and error helpers.