You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicecomb.apache.org by 郑扬勇 <ya...@qq.com> on 2017/12/22 08:13:47 UTC
Reply: Reply: Desgin of Java Chassis Metrics Publish Interface
OK~
Best Regards and Thanks!
------------------ 原始邮件 ------------------
发件人: "Willem Jiang";<wi...@gmail.com>;
发送时间: 2017年12月22日(星期五) 下午3:51
收件人: "dev"<de...@servicecomb.apache.org>;
主题: Re: Reply: Desgin of Java Chassis Metrics Publish Interface
It could save us lot of time if we just provide a normal Restful service, I
don't think it's good idea to provider service contract (swagger file) for
it.
As lots of user could just use a simple http client to access the metrics
data.
Willem Jiang
Blog: http://willemjiang.blogspot.com (English)
http://jnn.iteye.com (Chinese)
Twitter: willemjiang
Weibo: 姜宁willem
On Fri, Dec 22, 2017 at 2:40 PM, 郑扬勇 <ya...@qq.com> wrote:
> So it seems we may return DTO for better ? like :
> RegistryMetric metric();
> Then user can call toMap() method in RegistryMetric convert to map if
> necessary.
> In order to let metrics consumer import this DTO we must create a new
> Module named "metrics-common" and move it into ?
>
> Best Regards and Thanks!
> ------------------ 原始邮件 ------------------
> 发件人: "bismy";<bi...@qq.com>;
> 发送时间: 2017年12月22日(星期五) 下午2:18
> 收件人: "dev"<de...@servicecomb.apache.org>;
>
> 主题: Re: Desgin of Java Chassis Metrics Publish Interface
>
>
>
> From the point of view of the end user, any update is an schema change,
> and we need to inform them with the formal schema. I think use String will
> not reduce user’s work, but more uncertainties.
>
>
> ------------------ Original ------------------
> From: 郑扬勇 <ya...@qq.com>
> Date: 周五,12月 22,2017 11:31 上午
> To: dev <de...@servicecomb.apache.org>
> Subject: Re: Desgin of Java Chassis Metrics Publish Interface
>
>
>
> Dear All:
> In our desgin,If user include metrics in dependency,the metrics
> service would auto publish with Java Chassis Producer,also use same
> transport and endpoint config.For example if user config rest address
> 0.0.0.0:8080 in microservice.yaml,then the metrics service will available
> at http://:8080/metrics/{pollerIndex}.
> And in current architecture, the publish interface is : String
> metrics(int pollerIndex); the return type is String not RegistryMetric
> Entity,PR is here : https://github.com/apache/incubator-servicecomb-java-
> chassis/pull/453
> WillemJiang had point out "It‘s not a good way to just return the
> string here.", indeed use Class would get more clear code,but I think use
> String can also get some advantage.
>
> First we can extend more metrics result return style via config,like :
> 1.DTO style (Entity):
> {"instanceMetric":{"waitInQueue":0,"lifeTimeInQueue":{"total":0,"
> count":0,"average":0.0,"min":0,"max":0},"executionTime":{"
> total":0,"count":0,"average":0.0,"min":0,"max":0},"
> consumerLatency":{"total":0,"count":0,"average":0.0,"min":
> 0,"max":0},"producerLatency":{"total":0,"count":0,"average":
> 0.0,"min":0,"max":0}},"invocationMetrics":{}} ...
> 2.Map style (Map<String,Number>):
> {"servicecomb.instance.producer.producerLatency.
> average":5.0,"servicecomb.fun1.producer.lifeTimeInQueue.
> total":400000000,"servicecomb.fun3.producer.producerLatency.average":0.0,
> "servicecomb.fun1.producer.lifeTimeInQueue.min":
> 100000000,"servicecomb.fun1.producer.producerLatency.
> average":5.0,"servicecomb.fun2.consumer.consumerLatency.average":3.0,
> "servicecomb.fun1.producer.executionTime.max":400000000,"
> servicecomb.fun1.producer.producerCall.tps":1.0,"
> servicecomb.instance.producer.producerLatency.count":2,
> "servicecomb.fun3.producer.producerLatency.count":0,"
> servicecomb.instance.consumer.consumerCall.tps":0.5,"
> servicecomb.fun3.producer.executionTime.count":0,"servicecom...
> 3.Plain Line style (Properties):
> servicecomb.instance.producer.producerLatency.average=5.0
> servicecomb.fun1.producer.lifeTimeInQueue.total=400000
> servicecomb.fun3.producer.producerLatency.average=0.0
> ...
>
> Also when RegistryMetric updated , we don't need update contract yaml
> file,is a trouble work ...
> Last we can control output of RegistryMetric in order to hide some
> field user don't care.
>
> More information is here : https://issues.apache.org/jira/browse/SCB-11
> and any suggestion is wellcome~
>
> Best Regards and Thanks!