Skip to content

Improve usability of Metrics SDK #750

@lzchen

Description

@lzchen

The steps to setup and initialize the components needed even BEFORE recording metrics seems to be quite a lot.

metrics.set_meter_provider(MeterProvider(batcher_mode == "stateful"))
meter = metrics.get_meter(__name__)
exporter = ConsoleMetricsExporter()
controller = PushController(meter=meter, exporter=exporter, interval=5)

The division of responsibilities is also not clear. Why does the user need to define the PushController? There is not a clearly defined way of configuring (what exporter I want to use, what controller I want to use, whether it is stateful, the export interval, etc) metrics collection and export properties.

Despite there not being a well-defined metrics SDK spec, I'm creating this issue here to track discussion for the Python implementation specifically (as well as any insight received from the metrics SIG when SDK discussion resumes). As well, small PRs and adjustments to the SDK that are language specific that we feel will lead to a good implementation can be tracked here. Any suggestions are welcome.

Metadata

Metadata

Assignees

No one assigned

    Labels

    metricssdkAffects the SDK package.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions