本文整理汇总了Python中utils.timer.Timer.step方法的典型用法代码示例。如果您正苦于以下问题:Python Timer.step方法的具体用法?Python Timer.step怎么用?Python Timer.step使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类utils.timer.Timer
的用法示例。
在下文中一共展示了Timer.step方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: run
# 需要导入模块: from utils.timer import Timer [as 别名]
# 或者: from utils.timer.Timer import step [as 别名]
#.........这里部分代码省略.........
# Intrument check run timings if enabled.
if self.check_timings:
metric = 'datadog.agent.check_run_time'
meta = {'tags': ["check:%s" % check.name]}
metrics.append((metric, time.time(), check_run_time, meta))
if hasattr(check, A7_COMPATIBILITY_ATTR) and isinstance(getattr(check, A7_COMPATIBILITY_ATTR), str):
metric = 'datadog.agent.check_ready'
status = getattr(check, A7_COMPATIBILITY_ATTR)
meta = {'tags': ["check_name:%s" % check.name,
"agent_version_major:%s" % AGENT_VERSION.split(".")[0],
"agent_version_minor:%s" % AGENT_VERSION.split(".")[1],
"agent_version_patch:%s" % AGENT_VERSION.split(".")[2],
"status:%s" % status
]}
# datadog.agent.check_ready:
# 0: is not compatible with A7 (or unknown)
# 1: is compatible with A7
metrics.append((metric, time.time(), a7_compatible_to_int(status), meta))
for check_name, info in self.init_failed_checks_d.iteritems():
if not self.continue_running:
return
check_status = CheckStatus(check_name, None, None, None, None,
check_version=info.get('version', 'unknown'),
init_failed_error=info['error'],
init_failed_traceback=info['traceback'])
check_statuses.append(check_status)
# Add a service check for the agent
service_checks.append(create_service_check('datadog.agent.up', AgentCheck.OK,
hostname=self.hostname))
# Store the metrics and events in the payload.
payload['metrics'] = metrics
payload['events'] = events
payload['service_checks'] = service_checks
# Populate metadata
self._populate_payload_metadata(payload, check_statuses, start_event)
collect_duration = timer.step()
if self._agent_metrics:
metric_context = {
'collection_time': collect_duration,
'emit_time': self.emit_duration,
}
if not Platform.is_windows():
metric_context['cpu_time'] = time.clock() - cpu_clock
self._agent_metrics.set_metric_context(payload, metric_context)
self._agent_metrics.run()
agent_stats = self._agent_metrics.get_metrics()
payload['metrics'].extend(agent_stats)
if self.agentConfig.get('developer_mode'):
log.debug("\n Agent developer mode stats: \n {0}".format(
Collector._stats_for_display(agent_stats))
)
# Flush metadata for the Agent Metrics check. Otherwise they'll just accumulate and leak.
self._agent_metrics.get_service_metadata()
# Let's send our payload
emitter_statuses = payload.emit(log, self.agentConfig, self.emitters,
self.continue_running)
self.emit_duration = timer.step()
if self._is_first_run():
# This is not the exact payload sent to the backend as minor post
# processing is done, but this will give us a good idea of what is sent
# to the backend.
data = payload.payload # deep copy and merge of meta and metric data
data['apiKey'] = '*************************' + data.get('apiKey', '')[-5:]
# removing unused keys for the metadata payload
del data['metrics']
del data['events']
del data['service_checks']
if data.get('processes'):
data['processes']['apiKey'] = '*************************' + data['processes'].get('apiKey', '')[-5:]
log.debug("Metadata payload: %s", json.dumps(data))
# Persist the status of the collection run.
try:
CollectorStatus(check_statuses, emitter_statuses,
self.hostname_metadata_cache).persist()
except Exception:
log.exception("Error persisting collector status")
if self.run_count <= FLUSH_LOGGING_INITIAL or self.run_count % FLUSH_LOGGING_PERIOD == 0:
log.info("Finished run #%s. Collection time: %ss. Emit time: %ss" %
(self.run_count, round(collect_duration, 2), round(self.emit_duration, 2)))
if self.run_count == FLUSH_LOGGING_INITIAL:
log.info("First flushes done, next flushes will be logged every %s flushes." %
FLUSH_LOGGING_PERIOD)
else:
log.debug("Finished run #%s. Collection time: %ss. Emit time: %ss" %
(self.run_count, round(collect_duration, 2), round(self.emit_duration, 2)))
return payload