텐서플로:: 피복재:: ServableStateMonitor

#include <servable_state_monitor.h>

EventBus<ServableState>를 수신 대기하고 버스에서 언급된 각 servable의 상태를 추적하는 유틸리티입니다.

요약

의도 된 사용 사례는에 servables의 상태를 추적하는 관리자 .

제공 가능한 상태를 쿼리하기 위한 인터페이스를 제공합니다. 대시보드 및 관리자 테스트의 기초로 유용할 수 있습니다.

중요 : 당신은에 이벤트 버스를 제공 예, 이벤트 버스에 게시하는 이벤트를 배치하기 전에이 모니터를 만들어야합니다 관리자 .

생성자와 소멸자

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

공개 유형

BoundedLog 사용
std::deque< ServableStateAndTime >
NotifyFn 사용
std::function< void(const ServableState &)>
ServableMap 사용
std::map< ServableName, VersionMap >
ServableName 사용
string
ServableSet 사용
std::set< ServableName >
ServableStateNotifierFn 사용
std::function< void(bool reached_goal_state, const std::map< ServableId, ServableState::ManagerState > &states_reached)>
모든 servable이 'goal_state'에 도달했을 때 알립니다.
Version 사용
int64
VersionMap 사용
std::map< Version, ServableStateAndTime, std::greater< Version >>

공공 기능

ForgetUnloadedServableStates ()
void
상태가 kEnd로 전환된 ServableMap에서 모든 제공 가능한 버전을 제거합니다.
GetAllServableStates ()
ServableMap
모든 servable의 추적된 모든 버전의 현재 상태를 반환합니다.
GetAvailableServableStates ()
ServableSet
GetBoundedLog ()
BoundedLog
처리된 제공 가능한 상태 이벤트의 현재 제한된 로그를 반환합니다.
GetLiveServableStates ()
ServableMap
ServableState::ManagerState::kEnd 상태로 전환되지 않은 모든 servable 버전의 현재 상태를 반환합니다.
GetState (const ServableId & servable_id)
optional< ServableState >
한 servable의 현재 상태를 반환하거나 해당 servable이 추적되지 않는 경우 nullopt를 반환합니다.
GetStateAndTime (const ServableId & servable_id)
optional< ServableStateAndTime >
한 servable의 현재 상태와 시간을 반환하거나 해당 servable이 추적되지 않는 경우 nullopt를 반환합니다.
GetVersionStates (const string & servable_name)
VersionMap
주어진 서블러블의 추적된 모든 버전(있는 경우)의 현재 상태를 반환합니다.
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
NotifyWhenServablesReachState(...)와 유사하지만 알림 대신 'goal_state' 또는 kEnd에 도달할 때까지 기다립니다.

구조체

tensorflow :: 제공 :: ServableStateMonitor :: 옵션
tensorflow :: 제공 :: ServableStateMonitor :: ServableStateAndTime

공개 유형

경계 로그

std::deque< ServableStateAndTime > BoundedLog

알림Fn

std::function< void(const ServableState &)> NotifyFn

ServableMap

std::map< ServableName, VersionMap > ServableMap

제공 가능한 이름

string ServableName

ServableSet

std::set< ServableName > ServableSet

ServableStateNotifierFn

std::function< void(bool reached_goal_state, const std::map< ServableId, ServableState::ManagerState > &states_reached)> ServableStateNotifierFn

모든 servable이 'goal_state'에 도달했을 때 알립니다.

Servable은 두 가지 방법으로 지정할 수 있습니다.

  1. 제공 가능한 스트림 이름의 특정 버전으로. 이 경우 특정 버전이 'goal_state' 또는 kEnd에 도달했는지 확인합니다.
  2. 최신 버전으로, 이 경우 제공 가능한 스트림 이름의 모든 버전은 'goal_state' 또는 kEnd와 일치합니다.

두 조건이 모두 참일 때 'notifier_fn'을 호출합니다.

  1. 모든 특정 제공 가능한 요청이 'goal_state' 또는 kEnd에 도달했습니다.
  2. 모든 최근 제공 가능한 요청이 'goal_state' 또는 kEnd에 도달했습니다. 'notifier_fn'은 한 번만 호출되고 반복적으로 호출되지 않습니다.

'reached_goal_state' 인수는 모든 특정 servable이 'goal_state'에 도달한 경우 true로 설정됩니다. 따라서 호출자는 'notifier_fn'에서 'reached_goal_state'가 true인지 확인해야 합니다.

'states_reached' 인수는 제공 가능한 ID와 도달한 상태로 채워집니다. 'reached_goal_state'가 true이면 상태는 'goal_state'가 되고, 그렇지 않으면 kEnd 상태에 있는 하나 이상의 servable이 포함됩니다. 최신 제공 가능 요청의 경우 제공 가능 ID는 상태에 도달한 스트림의 제공 가능 ID가 됩니다.

버전

int64 Version

버전 맵

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

공공 기능

ForgetUnloadedServableStates

void ForgetUnloadedServableStates()

상태가 kEnd로 전환된 ServableMap에서 모든 제공 가능한 버전을 제거합니다.

GetAllServableStates

ServableMap GetAllServableStates()

모든 servable의 추적된 모든 버전의 현재 상태를 반환합니다.

GetAvailableServableStates

ServableSet GetAvailableServableStates()

GetBoundedLog

BoundedLog GetBoundedLog()

처리된 제공 가능한 상태 이벤트의 현재 제한된 로그를 반환합니다.

GetLiveServableStates

ServableMap GetLiveServableStates()

ServableState::ManagerState::kEnd 상태로 전환되지 않은 모든 servable 버전의 현재 상태를 반환합니다.

상태 가져오기

optional< ServableState > GetState(
  const ServableId & servable_id
)

한 servable의 현재 상태를 반환하거나 해당 servable이 추적되지 않는 경우 nullopt를 반환합니다.

상태 및 시간 가져오기

optional< ServableStateAndTime > GetStateAndTime(
  const ServableId & servable_id
)

한 servable의 현재 상태와 시간을 반환하거나 해당 servable이 추적되지 않는 경우 nullopt를 반환합니다.

GetVersionStates

VersionMap GetVersionStates(
  const string & servable_name
)

주어진 서블러블의 추적된 모든 버전(있는 경우)의 현재 상태를 반환합니다.

알림

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

NotifyWhenServablesReachState(...)와 유사하지만 알림 대신 'goal_state' 또는 kEnd에 도달할 때까지 기다립니다.

반환 값과 반환 매개변수 'states_reached'를 이해하려면 NotifyWhenServablesReachState(...)에 대한 설명서를 읽어보세요.

~ServableStateMonitor

virtual  ~ServableStateMonitor()