انضم إلى مجتمع SIG TFX-Addons وساعد في جعل TFX أفضل! انضم إلى SIG TFX-Addons

تينسورفلو :: خدمة:: ServableStateMonitor

#include <servable_state_monitor.h>

أداة تستمع إلى EventBus <ServableState> ، وتتتبع حالة كل خدمة مذكورة في الحافلة.

ملخص

حالة الاستخدام المقصودة هي تتبع حالات الخدمات في المدير .

يقدم واجهة للاستعلام عن الحالات القابلة للخدمة. قد يكون مفيدًا كأساس للوحات المعلومات ، وكذلك لاختبار المدير.

هام: يجب عليك إنشاء هذه الشاشة قبل الترتيب لنشر الأحداث على ناقل الحدث ، مثل إعطاء ناقل الحدث للمدير .

البنائين والمدمرين

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)>
تُعلم عندما تصل جميع الخوادم إلى "target_state".
Version استخدام
int64
VersionMap استخدام
std::map< Version, ServableStateAndTime, std::greater< Version >>

الوظائف العامة

ForgetUnloadedServableStates ()
void
يزيل جميع الإصدارات القابلة للخدمة من ServableMap التي انتقلت حالاتها إلى kEnd.
GetAllServableStates ()
ServableMap
تُرجع الحالات الحالية لجميع الإصدارات المتعقبة لجميع الخدمات.
GetAvailableServableStates ()
ServableSet
GetBoundedLog ()
BoundedLog
تُرجع السجل المحدد الحالي لأحداث الحالة القابلة للخدمة التي تمت معالجتها.
GetLiveServableStates ()
ServableMap
تُرجع الحالات الحالية لجميع إصدارات جميع الخوادم التي لم تنتقل إلى الحالة ServableState :: ManagerState :: kEnd.
GetState (const ServableId & servable_id)
optional< ServableState >
تُرجع الحالة الحالية لأحد الخيارات القابلة للخدمة ، أو nullopt إذا لم يتم تتبع تلك الخدمة.
GetStateAndTime (const ServableId & servable_id)
optional< ServableStateAndTime >
تُرجع الحالة والوقت الحاليين لواحد قابل للخدمة ، أو 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 (...) ، ولكن بدلاً من الإخطار ، ننتظر حتى يتم الوصول إلى "target_state" أو "kEnd".

الهياكل

tensorflow :: serve :: ServableStateMonitor :: Options
tensorflow :: serve :: ServableStateMonitor :: ServableStateAndTime

الأنواع العامة

BoundedLog

std::deque< ServableStateAndTime > BoundedLog

NotifyFn

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

للخدمة

std::map< ServableName, VersionMap > ServableMap

الاسم

string ServableName

قابل للخدمة

std::set< ServableName > ServableSet

ServableStateNotifierFn

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

تُعلم عندما تصل جميع الخوادم إلى "target_state".

يمكن تحديد الخوادم بطريقتين:

  1. كإصدارات محددة لاسم دفق قابل للخدمة. في هذه الحالة ، نتحقق مما إذا كان الإصدار المحدد قد وصل إلى "target_state" أو "kEnd".
  2. كأحدث الإصدارات ، في هذه الحالة ، ستتم مطابقة أي إصدار لاسم بث قابل للخدمة مع "target_state" أو "kEnd".

نسمي "notifier_fn" عندما يكون كلا الشرطين صحيحين -

  1. وصلت جميع الطلبات المحددة القابلة للخدمة إما إلى "target_state" أو "kEnd".
  2. وصلت جميع الطلبات القابلة للخدمة الأخيرة إلى "target_state" أو "kEnd". سيتم استدعاء "notifier_fn" مرة واحدة فقط ، وليس بشكل متكرر.

يتم تعيين الوسيطة "been_goal_state" (تم الوصول إليه) على أنها صحيحة إذا وصلت جميع الخوادم المحددة إلى "target_state". لذلك يجب على المتصلين التحقق من أن "calling_goal_state" صحيح في "notifier_fn".

يتم ملء وسيطة "state_reached" بمعرّف الخدمة والحالة التي وصلت إليها. ستكون الحالة "target_state" إذا كانت "access_goal_state" صحيحة ، وإلا فإنها ستحتوي على واحد أو أكثر من الخوادم في الحالة kEnd. لأحدث الطلبات القابلة للخدمة ، سيكون المعرف القابل للخدمة هو معرف الخدمة في الدفق الذي وصل إلى الحالة.

إصدار

int64 Version

VersionMap

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

الوظائف العامة

ForgetUnloadedServableStates

void ForgetUnloadedServableStates()

يزيل جميع الإصدارات القابلة للخدمة من ServableMap التي انتقلت حالاتها إلى kEnd.

GetAllServableStates

ServableMap GetAllServableStates()

تُرجع الحالات الحالية لجميع الإصدارات المتعقبة لجميع الخدمات.

GetAvailableServableStates

ServableSet GetAvailableServableStates()

GetBoundedLog

BoundedLog GetBoundedLog()

تُرجع السجل المحدد الحالي لأحداث الحالة القابلة للخدمة التي تمت معالجتها.

GetLiveServableStates

ServableMap GetLiveServableStates()

إرجاع الحالات الحالية لجميع إصدارات جميع الخوادم التي لم تنتقل إلى الحالة ServableState :: ManagerState :: kEnd.

GetState

optional< ServableState > GetState(
  const ServableId & servable_id
)

تُرجع الحالة الحالية لأحد الخيارات القابلة للخدمة ، أو nullopt إذا لم يتم تتبع تلك الخدمة.

GetStateAndTime

optional< ServableStateAndTime > GetStateAndTime(
  const ServableId & servable_id
)

تُرجع الحالة والوقت الحاليين لواحد قابل للخدمة ، أو 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 (...) ، ولكن بدلاً من الإخطار ، ننتظر حتى يتم الوصول إلى "target_state" أو "kEnd".

لفهم قيمة الإرجاع ومعامل الإرجاع "States_reached" ، يرجى قراءة الوثائق الموجودة على NotifyWhenServablesReachState (...).

~ ServableStateMonitor

virtual  ~ServableStateMonitor()