operation_tracker.h 683 B

123456789101112131415161718192021222324252627
  1. #pragma once
  2. #include <yt/cpp/mapreduce/interface/operation.h>
  3. #include <util/datetime/base.h>
  4. #include <util/generic/hash.h>
  5. #include <util/generic/maybe.h>
  6. #include <util/system/mutex.h>
  7. namespace NYT {
  8. ////////////////////////////////////////////////////////////////////////////////
  9. class TOperationExecutionTimeTracker {
  10. public:
  11. void Start(const TOperationId& operationId);
  12. TMaybe<TDuration> Finish(const TOperationId& operationId);
  13. static TOperationExecutionTimeTracker* Get();
  14. private:
  15. THashMap<TOperationId, TInstant> StartTimes_;
  16. TMutex Lock_;
  17. };
  18. ////////////////////////////////////////////////////////////////////////////////
  19. } // namespace NYT