1
#pragma once
2

            
3
#include <string>
4

            
5
#include "envoy/server/instance.h"
6

            
7
#include "source/server/configuration_impl.h"
8

            
9
namespace Envoy {
10
namespace Extensions {
11
namespace StatSinks {
12
namespace Hystrix {
13

            
14
// Hystrix sink
15
constexpr char HystrixName[] = "envoy.stat_sinks.hystrix";
16

            
17
class HystrixSinkFactory : Logger::Loggable<Logger::Id::config>,
18
                           public Server::Configuration::StatsSinkFactory {
19
public:
20
  // StatsSinkFactory
21
  absl::StatusOr<Stats::SinkPtr>
22
  createStatsSink(const Protobuf::Message& config,
23
                  Server::Configuration::ServerFactoryContext& server) override;
24

            
25
  ProtobufTypes::MessagePtr createEmptyConfigProto() override;
26

            
27
  std::string name() const override;
28
};
29

            
30
} // namespace Hystrix
31
} // namespace StatSinks
32
} // namespace Extensions
33
} // namespace Envoy