tensorflow :: servindo :: ServableStateMonitor
#include <servable_state_monitor.h>
Um utilitário que escuta um EventBus <ServableState> e controla o estado de cada serviço mencionado no barramento.
Resumo
O caso de uso pretendido é para rastrear os estados de servables em um Gerente .
Oferece uma interface para consultar os estados de serviço. Pode ser útil como base para painéis, bem como para testar um gerente.
IMPORTANTE: É necessário criar este monitor antes de arranjar para eventos a serem publicados no ônibus evento, por exemplo, dando o ônibus evento para um gerente .
Construtores e Destruidores | |
---|---|
ServableStateMonitor (EventBus< ServableState > *bus, const Options & options) | |
~ServableStateMonitor () |
Tipos públicos | |
---|---|
BoundedLog | usandostd::deque< ServableStateAndTime > |
NotifyFn | usandostd::function< void(const ServableState &)> |
ServableMap | usandostd::map< ServableName, VersionMap > |
ServableName | usandostring |
ServableSet | usandostd::set< ServableName > |
ServableStateNotifierFn | usandostd::function< void(bool reached_goal_state, const std::map< ServableId, ServableState::ManagerState > &states_reached)> Notifica quando todos os servables atingem o 'goal_state'. |
Version | usandoint64 |
VersionMap | usandostd::map< Version, ServableStateAndTime, std::greater< Version >> |
Funções públicas | |
---|---|
ForgetUnloadedServableStates () | void Remove todas as versões de serviço do ServableMap cujos estados fizeram a transição para kEnd. |
GetAllServableStates () | ServableMap Retorna os estados atuais de todas as versões rastreadas de todos os servables. |
GetAvailableServableStates () | ServableSet |
GetBoundedLog () | BoundedLog Retorna o log limitado atual de eventos de estado de serviço tratados. |
GetLiveServableStates () | ServableMap Retorna os estados atuais de todas as versões de todos os servables que não fizeram a transição para o estado ServableState :: ManagerState :: kEnd. |
GetState (const ServableId & servable_id) | optional< ServableState > Retorna o estado atual de um serviço ou nullopt se esse serviço não está sendo rastreado. |
GetStateAndTime (const ServableId & servable_id) | optional< ServableStateAndTime > Retorna o estado e a hora atuais de um serviço ou nullopt se esse serviço não está sendo rastreado. |
GetVersionStates (const string & servable_name) | VersionMap Retorna os estados atuais de todas as versões rastreadas do serviço fornecido, se houver. |
Notify (const NotifyFn & notify_fn) | void |
NotifyWhenServablesReachState (const std::vector< ServableRequest > & servables, ServableState::ManagerState goal_state, const ServableStateNotifierFn & notifier_fn) | void |
WaitUntilServablesReachState (const std::vector< ServableRequest > & servables, ServableState::ManagerState goal_state, std::map< ServableId, ServableState::ManagerState > *states_reached) TF_MUST_USE_RESULT | bool Semelhante a NotifyWhenServablesReachState (...), mas em vez de notificar, esperamos até que 'goal_state' ou kEnd seja alcançado. |
Structs | |
---|---|
tensorflow :: servindo :: ServableStateMonitor :: Opções | |
tensorflow :: servindo :: ServableStateMonitor :: ServableStateAndTime |
Tipos públicos
BoundedLog
std::deque< ServableStateAndTime > BoundedLog
NotifyFn
std::function< void(const ServableState &)> NotifyFn
ServableMap
std::map< ServableName, VersionMap > ServableMap
ServableName
string ServableName
ServableSet
std::set< ServableName > ServableSet
ServableStateNotifierFn
std::function< void(bool reached_goal_state, const std::map< ServableId, ServableState::ManagerState > &states_reached)> ServableStateNotifierFn
Notifica quando todos os servables atingem o 'goal_state'.
Os serviços podem ser especificados de duas maneiras:
- Como versões específicas de um nome de fluxo de serviço. Neste caso, verificamos se a versão específica atingiu o 'goal_state' ou o kEnd.
- Como versões mais recentes, neste caso, qualquer versão para um nome de fluxo de serviço será comparada com 'goal_state' ou kEnd.
Chamamos 'notifier_fn' quando ambas as condições são verdadeiras -
- Todas as solicitações de serviço específicas alcançaram 'goal_state' ou kEnd.
- Todas as solicitações de serviço mais recentes alcançaram 'goal_state' ou kEnd. O 'notifier_fn' será chamado apenas uma vez, e não repetidamente.
O argumento 'reach_goal_state' é definido como verdadeiro se todos os servables específicos alcançaram 'goal_state'. Portanto, os chamadores devem verificar se 'reach_goal_state' é verdadeiro no 'notifier_fn'.
O argumento 'states_reached' é preenchido com o id do servable e o estado que atingiu. O estado seria 'goal_state' se 'reach_goal_state' fosse verdadeiro, caso contrário, conterá um ou mais servables no estado kEnd. Para as solicitações de serviço mais recentes, o id de serviço será o id do serviço no fluxo que atingiu o estado.
Versão
int64 Version
VersionMap
std::map< Version, ServableStateAndTime, std::greater< Version >> VersionMap
Funções públicas
ForgetUnloadedServableStates
void ForgetUnloadedServableStates()
Remove todas as versões de serviço do ServableMap cujos estados fizeram a transição para kEnd.
GetAllServableStates
ServableMap GetAllServableStates()
Retorna os estados atuais de todas as versões rastreadas de todos os servables.
GetAvailableServableStates
ServableSet GetAvailableServableStates()
GetBoundedLog
BoundedLog GetBoundedLog()
Retorna o log limitado atual de eventos de estado de serviço tratados.
GetLiveServableStates
ServableMap GetLiveServableStates()
Retorna os estados atuais de todas as versões de todos os servables que não fizeram a transição para o estado ServableState :: ManagerState :: kEnd.
GetState
optional< ServableState > GetState( const ServableId & servable_id )
Retorna o estado atual de um serviço ou nullopt se esse serviço não está sendo rastreado.
GetStateAndTime
optional< ServableStateAndTime > GetStateAndTime( const ServableId & servable_id )
Retorna o estado e a hora atuais de um serviço ou nullopt se esse serviço não está sendo rastreado.
GetVersionStates
VersionMap GetVersionStates( const string & servable_name )
Retorna os estados atuais de todas as versões rastreadas do serviço fornecido, se houver.
Notificar
void Notify( const NotifyFn & notify_fn )
NotifyWhenServablesReachState
void NotifyWhenServablesReachState( const std::vector< ServableRequest > & servables, ServableState::ManagerState goal_state, const ServableStateNotifierFn & notifier_fn )
ServableStateMonitor
ServableStateMonitor( EventBus< ServableState > *bus, const Options & options )
WaitUntilServablesReachState
bool WaitUntilServablesReachState( const std::vector< ServableRequest > & servables, ServableState::ManagerState goal_state, std::map< ServableId, ServableState::ManagerState > *states_reached ) TF_MUST_USE_RESULT
Semelhante a NotifyWhenServablesReachState (...), mas em vez de notificar, esperamos até que 'goal_state' ou kEnd seja alcançado.
Para entender o valor de retorno e o parâmetro de retorno 'states_reached', leia a documentação em NotifyWhenServablesReachState (...).
~ ServableStateMonitor
virtual ~ServableStateMonitor()