// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once #include #include #include #include #include #include namespace logdemon { /** * Class used to serve /state/v1 REST API over HTTP for vespa-logd process. */ class StateReporter { int _port; vespalib::SimpleHealthProducer _health; vespalib::SimpleComponentConfigProducer _components; std::shared_ptr _metrics; vespalib::metrics::Producer _producer; std::unique_ptr _server; public: StateReporter(); ~StateReporter(); void setStatePort(int statePort); void gotConf(size_t generation); std::shared_ptr metrics() { return _metrics; } }; } // namespace