[ https://issues.apache.org/jira/browse/BEAM-4374?focusedWorklogId=410658&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-410658 ]
ASF GitHub Bot logged work on BEAM-4374: ---------------------------------------- Author: ASF GitHub Bot Created on: 26/Mar/20 21:55 Start Date: 26/Mar/20 21:55 Worklog Time Spent: 10m Work Description: ajamato commented on pull request #11184: [BEAM-4374] Update protos related to MonitoringInfo. URL: https://github.com/apache/beam/pull/11184#discussion_r398916506 ########## File path: model/pipeline/src/main/proto/metrics.proto ########## @@ -52,38 +61,160 @@ message Annotation { string value = 2; } -// Populated MonitoringInfoSpecs for specific URNs. -// Indicating the required fields to be set. -// SDKs and RunnerHarnesses can load these instances into memory and write a -// validator or code generator to assist with populating and validating -// MonitoringInfo protos. +// A set of well known MonitoringInfo specifications. message MonitoringInfoSpecs { enum Enum { - // TODO(BEAM-6926): Add the PTRANSFORM name as a required label after - // upgrading the python SDK. - USER_COUNTER = 0 [(monitoring_info_spec) = { - urn: "beam:metric:user", - type_urn: "beam:metrics:sum_int_64", + // Represents an integer counter where values are summed across bundles. + USER_SUM_INT64 = 0 [(monitoring_info_spec) = { + urn: "beam:metric:user:v1", + type: "beam:metrics:sum_int64:v1", + required_labels: ["PTRANSFORM", "NAMESPACE", "NAME"], + annotations: [{ + key: "description", + value: "URN utilized to report user metric." + }] + }]; + + // Represents a double counter where values are summed across bundles. + USER_SUM_DOUBLE = 1 [(monitoring_info_spec) = { + urn: "beam:metric:user:v1", + type: "beam:metrics:sum_double:v1", + required_labels: ["PTRANSFORM", "NAMESPACE", "NAME"], + annotations: [{ + key: "description", + value: "URN utilized to report user metric." + }] + }]; + + // Represents a distribution of an integer value where: + // - count: represents the number of values seen across all bundles Review comment: Now it seems like there technically aren't any fields named "count", "sum", "min", "max". Just 4 encoded varints in that specific order. There is no longer a proto or anything which defines this format. If we are going to keep type urns, I think that there should be somewhere in this file where you could a "TypeSpec", which describes how to encode each opaque bytes payload. i.e. the coders used for each value, the order they must be encoded. Or a proto that should be serialized into that bytes field, etc. A description that will work for all languages. Right now you can only know that from looking at your encoding code. I think it would be best if SDK implemented could look at a reference file like this and know how to populate the MonitoringInfo. That was the original intention behind MonitoringInfoSpec, and I believe that is a bit lost now with this change. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking ------------------- Worklog Id: (was: 410658) Time Spent: 32h 10m (was: 32h) > Update existing metrics in the FN API to use new Metric Schema > -------------------------------------------------------------- > > Key: BEAM-4374 > URL: https://issues.apache.org/jira/browse/BEAM-4374 > Project: Beam > Issue Type: New Feature > Components: beam-model > Reporter: Alex Amato > Priority: Major > Time Spent: 32h 10m > Remaining Estimate: 0h > > Update existing metrics to use the new proto and cataloging schema defined in: > [_https://s.apache.org/beam-fn-api-metrics_] > * Check in new protos > * Define catalog file for metrics > * Port existing metrics to use this new format, based on catalog > names+metadata -- This message was sent by Atlassian Jira (v8.3.4#803005)