def main(): global metricsRegistry metricsRegistry = MetricsRegistry() #timer = metricsRegistry.timer("post_calls") #print((str(metricsRegistry._get_timer_metrics("post_calls")))) loop = uvloop.new_event_loop() asyncio.set_event_loop(loop) app = Application() app.listen(options.port) asyncio.get_event_loop().run_forever()
def setup_registry(self, registry=None): """ Setup the Metric Reporter with the given registry(s) """ if not registry: self.registry = [MetricsRegistry(), ] else: if not isinstance(registry, (tuple, list)): registry = [registry, ] self.registry = [] for reg in registry: if not isinstance(reg, (MetricsRegistry, RegexRegistry)): raise GoblinMetricsException( "%s is not an instance of pyformance.MetricsRegistry" + " or pyformance.RegexRegistry") self.registry.append(reg)
def fetch_docs(base_path, es_host, es_index, es_query=None, limit=-1): exp_name = "fetch_docs" exp_path = f"{base_path}/{exp_name}" os.makedirs(exp_path, exist_ok=True) run = mlflow.start_run(experiment_id=get_or_create_experiment_id(exp_name)) docs_path = f"{exp_path}/{run.run_info.run_uuid}" registry = MetricsRegistry() mlflow_reporter = MlflowReporter(registry=registry, active_run=run, reporting_interval=10) mlflow_reporter.start() influx_reporter = InfluxReporter(registry=registry, reporting_interval=10, autocreate_database=True) influx_reporter.start() try: mlflow.log_param("docs_path", docs_path) mlflow.log_param("es_host", es_host) mlflow.log_param("es_index", es_index) mlflow.log_param("es_query", es_query) _write_docs( _get_docs_scrolled(registry, es_host, es_index, es_query, limit), docs_path) influx_reporter.report_now() mlflow_reporter.report_now() mlflow.end_run() except Exception as e: mlflow.end_run("FAILED") raise e finally: influx_reporter.stop() mlflow_reporter.stop() return run
def reset_metrics(): pyformance.set_global_registry(MetricsRegistry())
class RequestHandler(Resource): # isLeaf is a way of indicate whether the object # has child nodes isLeaf = True # run server then go to: http://localhost:8001/?world_size=n # n being a number of your choice def render_GET(self, request): counter = metricsRegistry.counter("hello_called").inc() world_size = request.args["world_size"][0] histogram = metricsRegistry.histogram("world_size") histogram.add(int(world_size)) request.setResponseCode(200) return str(metricsRegistry._get_histogram_metrics("world_size")) if __name__ == '__main__': # Load up twisted web global metricsRegistry metricsRegistry = MetricsRegistry() try: resource = RequestHandler() factory = Site(resource) reactor.listenTCP(8001, factory) reactor.run() except Exception as e: print(e)