tensorflow :: servicio:: ServableStateMonitor

#include <servable_state_monitor.h>

Una utilidad que escucha un EventBus <ServableState> y realiza un seguimiento del estado de cada servidor mencionado en el bus.

Resumen

El caso de uso previsto es para hacer un seguimiento de los estados de servables en un Administrador .

Ofrece una interfaz para consultar los estados de servicio. Puede ser útil como base para paneles de control, así como para probar un administrador.

IMPORTANTE: Debe crear este monitor antes de arreglar para los eventos que se publicará en el bus de eventos, por ejemplo, dando al bus de sucesos a un Gestor .

Constructores y Destructores

ServableStateMonitor (EventBus< ServableState > *bus, const Options & options)
~ServableStateMonitor ()

Tipos públicos

BoundedLog utilizando
std::deque< ServableStateAndTime >
NotifyFn utilizando
std::function< void(const ServableState &)>
ServableMap utilizando
std::map< ServableName, VersionMap >
ServableName utilizando
string
ServableSet utilizando
std::set< ServableName >
ServableStateNotifierFn utilizando
std::function< void(bool reached_goal_state, const std::map< ServableId, ServableState::ManagerState > &states_reached)>
Notifica cuando todos los servibles han alcanzado el 'estado_objetivo'.
Version utilizando
int64
VersionMap utilizando
std::map< Version, ServableStateAndTime, std::greater< Version >>

Funciones publicas

ForgetUnloadedServableStates ()
void
Elimina todas las versiones servibles del ServableMap cuyos estados han pasado a kEnd.
GetAllServableStates ()
ServableMap
Devuelve los estados actuales de todas las versiones rastreadas de todos los servibles.
GetAvailableServableStates ()
ServableSet
GetBoundedLog ()
BoundedLog
Devuelve el registro acotado actual de los eventos de estado de servicio manejados.
GetLiveServableStates ()
ServableMap
Devuelve los estados actuales de todas las versiones de todos los servidores que no han pasado al estado ServableState :: ManagerState :: kEnd.
GetState (const ServableId & servable_id)
optional< ServableState >
Devuelve el estado actual de un servidor o nullopt si no se está rastreando ese servidor.
GetStateAndTime (const ServableId & servable_id)
optional< ServableStateAndTime >
Devuelve el estado actual y la hora de un servidor, o nullopt si no se está rastreando ese servidor.
GetVersionStates (const string & servable_name)
VersionMap
Devuelve los estados actuales de todas las versiones rastreadas del servidor dado, si corresponde.
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
Similar a NotifyWhenServablesReachState (...), pero en lugar de notificar, esperamos hasta que se alcance 'goal_state' o kEnd.

Estructuras

tensorflow :: :: servir ServableStateMonitor :: Opciones
tensorflow :: :: servir 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 cuando todos los servibles han alcanzado el 'estado_objetivo'.

Los servibles se pueden especificar de dos formas:

  1. Como versiones específicas de un nombre de flujo servible. En este caso, verificamos si la versión específica ha alcanzado el 'estado_objetivo' o kEnd.
  2. Como versiones más recientes, en cuyo caso cualquier versión para un nombre de flujo servible se comparará con 'goal_state' o kEnd.

Llamamos al 'notifier_fn' cuando ambas condiciones son verdaderas -

  1. Todas las solicitudes publicables específicas han alcanzado el 'estado_objetivo' o el kEnd.
  2. Todas las últimas solicitudes publicables han alcanzado 'goal_state' o kEnd. El 'notifier_fn' se llamará solo una vez, y no repetidamente.

El argumento 'reach_goal_state' se establece como verdadero si todos los servibles específicos han alcanzado 'goal_state'. Por lo tanto, las personas que llaman deben verificar que 'has_goal_state' sea verdadero en el 'notifier_fn'.

El argumento 'states_reached' se completa con la identificación del servidor y el estado que alcanzó. El estado sería 'goal_state' si 'alcanzó_goal_state' es verdadero, de lo contrario, contendrá uno o más servibles en el estado kEnd. Para las últimas solicitudes servibles, la identificación servible será la identificación del servidor en la secuencia que alcanzó el estado.

Versión

int64 Version

VersionMap

std::map< Version, ServableStateAndTime, std::greater< Version >> VersionMap

Funciones publicas

ForgetUnloadedServableStates

void ForgetUnloadedServableStates()

Elimina todas las versiones servibles del ServableMap cuyos estados han pasado a kEnd.

GetAllServableStates

ServableMap GetAllServableStates()

Devuelve los estados actuales de todas las versiones rastreadas de todos los servibles.

GetAvailableServableStates

ServableSet GetAvailableServableStates()

GetBoundedLog

BoundedLog GetBoundedLog()

Devuelve el registro acotado actual de los eventos de estado de servicio manejados.

GetLiveServableStates

ServableMap GetLiveServableStates()

Devuelve los estados actuales de todas las versiones de todos los servidores que no han pasado al estado ServableState :: ManagerState :: kEnd.

GetState

optional< ServableState > GetState(
  const ServableId & servable_id
)

Devuelve el estado actual de un servidor o nullopt si no se está rastreando ese servidor.

GetStateAndTime

optional< ServableStateAndTime > GetStateAndTime(
  const ServableId & servable_id
)

Devuelve el estado actual y la hora de un servidor, o nullopt si no se está rastreando ese servidor.

GetVersionStates

VersionMap GetVersionStates(
  const string & servable_name
)

Devuelve los estados actuales de todas las versiones rastreadas del servidor dado, si corresponde.

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

Similar a NotifyWhenServablesReachState (...), pero en lugar de notificar, esperamos hasta que se alcance 'goal_state' o kEnd.

Para comprender el valor de retorno y el parámetro de retorno 'states_reached', lea la documentación en NotifyWhenServablesReachState (...).

~ ServableStateMonitor

virtual  ~ServableStateMonitor()