在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?

wanglei2@geekplus.com.cn

官网上的例子:

public class MyMapper extends RichMapFunction<String, String> {
  private transient Counter counter;
  @Override
  public void open(Configuration config) {
    this.counter = getRuntimeContext()
      .getMetricGroup()
      .counter("myCounter");
  }
  @Override
  public String map(String value) throws Exception {
    this.counter.inc();
    return value;
  }
}

我想要根据 map 方法中传入的参数生成不同的 监控指标,怎样可以实现呢?

谢谢,
王磊



[hidden email]

Reply | Threaded
Open this post in threaded view
|

回复: 回复:在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?

wanglei2@geekplus.com.cn

全都是同一种类型的 metrics.
比如消息中是 mysql binlog 解析结果,我想要根据消息内容拿到 tableName, 按 tableName 生成不同名称的 metrics(但都是 meter 类型)

谢谢,
王磊




[hidden email]


发件人: JasonLee
发送时间: 2020-07-02 16:16
收件人: user-zh
主题: 回复:在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?
是要生成不同类型的metric吗 比如counter meter ?
 
 
| |
JasonLee
|
|
邮箱:[hidden email]
|
 
Signature is customized by Netease Mail Master
 
在2020年07月02日 15:34,[hidden email] 写道:
 
官网上的例子:
 
public class MyMapper extends RichMapFunction<String, String> {
private transient Counter counter;
@Override
public void open(Configuration config) {
   this.counter = getRuntimeContext()
     .getMetricGroup()
     .counter("myCounter");
}
@Override
public String map(String value) throws Exception {
   this.counter.inc();
   return value;
}
}
 
我想要根据 map 方法中传入的参数生成不同的 监控指标,怎样可以实现呢?
 
谢谢,
王磊
 
 
 
[hidden email]
 
Reply | Threaded
Open this post in threaded view
|

回复:在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?

wanglei2@geekplus.com.cn

没有明白你说的实现方式。

我最终要得到类似的 Metrics:  myCounter_table1, myCounter_table2, ..., myCounter_tableX
但我看代码中 Metrics 的初始化都是在 open 方法中的,在这个方法中我没法得到 tableName 是什么。

谢谢,
王磊



------------------------------------------------------------------
发件人:JasonLee <[hidden email]>
发送时间:2020年7月2日(星期四) 21:12
收件人:user-zh <[hidden email]>
主 题:回复:在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?

你把tablename传到下面metric里不就行了吗


| |
JasonLee
|
|
邮箱:[hidden email]
|

Signature is customized by Netease Mail Master

在2020年07月02日 16:39,[hidden email] 写道:

全都是同一种类型的 metrics.
比如消息中是 mysql binlog 解析结果,我想要根据消息内容拿到 tableName, 按 tableName 生成不同名称的 metrics(但都是 meter 类型)

谢谢,
王磊




[hidden email]


发件人: JasonLee
发送时间: 2020-07-02 16:16
收件人: user-zh
主题: 回复:在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?
是要生成不同类型的metric吗 比如counter meter ?


| |
JasonLee
|
|
邮箱:[hidden email]
|

Signature is customized by Netease Mail Master

在2020年07月02日 15:34,[hidden email] 写道:

官网上的例子:

public class MyMapper extends RichMapFunction<String, String> {
private transient Counter counter;
@Override
public void open(Configuration config) {
  this.counter = getRuntimeContext()
    .getMetricGroup()
    .counter("myCounter");
}
@Override
public String map(String value) throws Exception {
  this.counter.inc();
  return value;
}
}

我想要根据 map 方法中传入的参数生成不同的 监控指标,怎样可以实现呢?

谢谢,
王磊



[hidden email]


Reply | Threaded
Open this post in threaded view
|

Re: 回复:在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?

wanglei2@geekplus.com.cn
public void invoke(ObjectNode node, Context context) throws Exception {

    String tableName = node.get("metadata").get("topic").asText();
    Meter meter = getRuntimeContext().getMetricGroup().meter(tableName, new MeterView(10));
    meter.markEvent();
    log.info("### counter: " + meter.toString() + "\t" +  meter.getCount());

如上面代码所示,在 invoke 方法中解析得到 tableName, 以 tableName 名字作为 metrics.
但这样写每一消息下来了后相当于重新定义了 这个 metrics , 又从 0 开始计数了。

谢谢,
王磊


[hidden email]

 
Sender: kcz
Send Time: 2020-07-03 09:13
Receiver: wanglei2
Subject: 回复:在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?
按照你的描述 你就是少了tablename,那么你解析log 得到了tablename又做metric就好了吧



------------------ 原始邮件 ------------------
发件人: 王磊2 <[hidden email]>
发送时间: 2020年7月2日 21:46
收件人: user-zh <[hidden email]>, 17610775726 <[hidden email]>
主题: 回复:在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?


没有明白你说的实现方式。

我最终要得到类似的 Metrics:  myCounter_table1, myCounter_table2, ..., myCounter_tableX
但我看代码中 Metrics 的初始化都是在 open 方法中的,在这个方法中我没法得到 tableName 是什么。

谢谢,
王磊



------------------------------------------------------------------
发件人:JasonLee <[hidden email]>
发送时间:2020年7月2日(星期四) 21:12
收件人:user-zh <[hidden email]>
主 题:回复:在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?

你把tablename传到下面metric里不就行了吗


| |
JasonLee
|
|
邮箱:[hidden email]
|

Signature is customized by Netease Mail Master

在2020年07月02日 16:39,[hidden email] 写道:

全都是同一种类型的 metrics.
比如消息中是 mysql binlog 解析结果,我想要根据消息内容拿到 tableName, 按 tableName 生成不同名称的 metrics(但都是 meter 类型)

谢谢,
王磊




[hidden email]


发件人: JasonLee
发送时间: 2020-07-02 16:16
收件人: user-zh
主题: 回复:在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?
是要生成不同类型的metric吗 比如counter meter ?


| |
JasonLee
|
|
邮箱:[hidden email]
|

Signature is customized by Netease Mail Master

在2020年07月02日 15:34,[hidden email] 写道:

官网上的例子:

public class MyMapper extends RichMapFunction<String, String> {
private transient Counter counter;
@Override
public void open(Configuration config) {
  this.counter = getRuntimeContext()
    .getMetricGroup()
    .counter("myCounter");
}
@Override
public String map(String value) throws Exception {
  this.counter.inc();
  return value;
}
}

我想要根据 map 方法中传入的参数生成不同的 监控指标,怎样可以实现呢?

谢谢,
王磊



[hidden email]


Reply | Threaded
Open this post in threaded view
|

Re: 回复:在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?

zhisheng
我猜你是想要将 table name 作为一个标签方便后期分组查询过滤?

[hidden email] <[hidden email]> 于2020年7月3日周五 上午10:24写道:

> public void invoke(ObjectNode node, Context context) throws Exception {
>
>     String tableName = node.get("metadata").get("topic").asText();
>     Meter meter = getRuntimeContext().getMetricGroup().meter(tableName,
> new MeterView(10));
>     meter.markEvent();
>     log.info("### counter: " + meter.toString() + "\t" +
> meter.getCount());
>
> 如上面代码所示,在 invoke 方法中解析得到 tableName, 以 tableName 名字作为 metrics.
> 但这样写每一消息下来了后相当于重新定义了 这个 metrics , 又从 0 开始计数了。
>
> 谢谢,
> 王磊
>
>
> [hidden email]
>
>
> Sender: kcz
> Send Time: 2020-07-03 09:13
> Receiver: wanglei2
> Subject: 回复:在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?
> 按照你的描述 你就是少了tablename,那么你解析log 得到了tablename又做metric就好了吧
>
>
>
> ------------------ 原始邮件 ------------------
> 发件人: 王磊2 <[hidden email]>
> 发送时间: 2020年7月2日 21:46
> 收件人: user-zh <[hidden email]>, 17610775726 <[hidden email]>
> 主题: 回复:在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?
>
>
> 没有明白你说的实现方式。
>
> 我最终要得到类似的 Metrics:  myCounter_table1, myCounter_table2, ...,
> myCounter_tableX
> 但我看代码中 Metrics 的初始化都是在 open 方法中的,在这个方法中我没法得到 tableName 是什么。
>
> 谢谢,
> 王磊
>
>
>
> ------------------------------------------------------------------
> 发件人:JasonLee <[hidden email]>
> 发送时间:2020年7月2日(星期四) 21:12
> 收件人:user-zh <[hidden email]>
> 主 题:回复:在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?
>
> 你把tablename传到下面metric里不就行了吗
>
>
> | |
> JasonLee
> |
> |
> 邮箱:[hidden email]
> |
>
> Signature is customized by Netease Mail Master
>
> 在2020年07月02日 16:39,[hidden email] 写道:
>
> 全都是同一种类型的 metrics.
> 比如消息中是 mysql binlog 解析结果,我想要根据消息内容拿到 tableName, 按 tableName 生成不同名称的
> metrics(但都是 meter 类型)
>
> 谢谢,
> 王磊
>
>
>
>
> [hidden email]
>
>
> 发件人: JasonLee
> 发送时间: 2020-07-02 16:16
> 收件人: user-zh
> 主题: 回复:在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?
> 是要生成不同类型的metric吗 比如counter meter ?
>
>
> | |
> JasonLee
> |
> |
> 邮箱:[hidden email]
> |
>
> Signature is customized by Netease Mail Master
>
> 在2020年07月02日 15:34,[hidden email] 写道:
>
> 官网上的例子:
>
> public class MyMapper extends RichMapFunction<String, String> {
> private transient Counter counter;
> @Override
> public void open(Configuration config) {
>   this.counter = getRuntimeContext()
>     .getMetricGroup()
>     .counter("myCounter");
> }
> @Override
> public String map(String value) throws Exception {
>   this.counter.inc();
>   return value;
> }
> }
>
> 我想要根据 map 方法中传入的参数生成不同的 监控指标,怎样可以实现呢?
>
> 谢谢,
> 王磊
>
>
>
> [hidden email]
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: 在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?

john
Mark一下,我现在也有这样的需求

> 2020年7月4日 下午12:35,zhisheng <[hidden email]> 写道:
>
> 我猜你是想要将 table name 作为一个标签方便后期分组查询过滤?
>
> [hidden email] <[hidden email]> 于2020年7月3日周五 上午10:24写道:
>
>> public void invoke(ObjectNode node, Context context) throws Exception {
>>
>>    String tableName = node.get("metadata").get("topic").asText();
>>    Meter meter = getRuntimeContext().getMetricGroup().meter(tableName,
>> new MeterView(10));
>>    meter.markEvent();
>>    log.info("### counter: " + meter.toString() + "\t" +
>> meter.getCount());
>>
>> 如上面代码所示,在 invoke 方法中解析得到 tableName, 以 tableName 名字作为 metrics.
>> 但这样写每一消息下来了后相当于重新定义了 这个 metrics , 又从 0 开始计数了。
>>
>> 谢谢,
>> 王磊
>>
>>
>> [hidden email]
>>
>>
>> Sender: kcz
>> Send Time: 2020-07-03 09:13
>> Receiver: wanglei2
>> Subject: 回复:在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?
>> 按照你的描述 你就是少了tablename,那么你解析log 得到了tablename又做metric就好了吧
>>
>>
>>
>> ------------------ 原始邮件 ------------------
>> 发件人: 王磊2 <[hidden email]>
>> 发送时间: 2020年7月2日 21:46
>> 收件人: user-zh <[hidden email]>, 17610775726 <[hidden email]>
>> 主题: 回复:在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?
>>
>>
>> 没有明白你说的实现方式。
>>
>> 我最终要得到类似的 Metrics:  myCounter_table1, myCounter_table2, ...,
>> myCounter_tableX
>> 但我看代码中 Metrics 的初始化都是在 open 方法中的,在这个方法中我没法得到 tableName 是什么。
>>
>> 谢谢,
>> 王磊
>>
>>
>>
>> ------------------------------------------------------------------
>> 发件人:JasonLee <[hidden email]>
>> 发送时间:2020年7月2日(星期四) 21:12
>> 收件人:user-zh <[hidden email]>
>> 主 题:回复:在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?
>>
>> 你把tablename传到下面metric里不就行了吗
>>
>>
>> | |
>> JasonLee
>> |
>> |
>> 邮箱:[hidden email]
>> |
>>
>> Signature is customized by Netease Mail Master
>>
>> 在2020年07月02日 16:39,[hidden email] 写道:
>>
>> 全都是同一种类型的 metrics.
>> 比如消息中是 mysql binlog 解析结果,我想要根据消息内容拿到 tableName, 按 tableName 生成不同名称的
>> metrics(但都是 meter 类型)
>>
>> 谢谢,
>> 王磊
>>
>>
>>
>>
>> [hidden email]
>>
>>
>> 发件人: JasonLee
>> 发送时间: 2020-07-02 16:16
>> 收件人: user-zh
>> 主题: 回复:在一个 flink operator 中怎样根据消息内容动态生成多个监控指标?
>> 是要生成不同类型的metric吗 比如counter meter ?
>>
>>
>> | |
>> JasonLee
>> |
>> |
>> 邮箱:[hidden email]
>> |
>>
>> Signature is customized by Netease Mail Master
>>
>> 在2020年07月02日 15:34,[hidden email] 写道:
>>
>> 官网上的例子:
>>
>> public class MyMapper extends RichMapFunction<String, String> {
>> private transient Counter counter;
>> @Override
>> public void open(Configuration config) {
>>  this.counter = getRuntimeContext()
>>    .getMetricGroup()
>>    .counter("myCounter");
>> }
>> @Override
>> public String map(String value) throws Exception {
>>  this.counter.inc();
>>  return value;
>> }
>> }
>>
>> 我想要根据 map 方法中传入的参数生成不同的 监控指标,怎样可以实现呢?
>>
>> 谢谢,
>> 王磊
>>
>>
>>
>> [hidden email]
>>
>>
>>