blob: a1926eba447460f7c905347da314f6ee9b01de69 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
// Copyright Epic Games, Inc. All Rights Reserved.
#include "statsreporter.h"
#include <zencore/logging.h>
#include <zencore/trace.h>
#include <zennet/statsdclient.h>
namespace zen {
StatsReporter::StatsReporter()
{
}
StatsReporter::~StatsReporter()
{
}
void
StatsReporter::Initialize(const ZenStatsConfig& Config)
{
ZEN_TRACE_CPU("StatsReporter::Initialize");
RwLock::ExclusiveLockScope _(m_Lock);
if (Config.Enabled)
{
ZEN_INFO("initializing stats reporter: {}:{}", Config.StatsdHost, Config.StatsdPort)
m_Statsd = CreateStatsDaemonClient(Config.StatsdHost, gsl::narrow<uint16_t>(Config.StatsdPort));
m_Statsd->SetMessageSize(1500, false);
}
}
void
StatsReporter::Shutdown()
{
RwLock::ExclusiveLockScope _(m_Lock);
m_Statsd.reset();
}
void
StatsReporter::AddProvider(StatsProvider* Provider)
{
RwLock::ExclusiveLockScope _(m_Lock);
m_Providers.push_back(Provider);
}
void
StatsReporter::ReportStats()
{
RwLock::ExclusiveLockScope _(m_Lock);
if (m_Statsd)
{
for (StatsProvider* Provider : m_Providers)
{
Provider->ReportMetrics(*m_Statsd);
}
m_Statsd->Flush();
}
}
} // namespace zen
|