第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

將 java-List<T> 轉(zhuǎn)換為可用于 iomicrometer 的 MultiGauge 的流

將 java-List<T> 轉(zhuǎn)換為可用于 iomicrometer 的 MultiGauge 的流

動(dòng)漫人物 2023-03-09 14:36:14
從我的 springboot 應(yīng)用程序中,我收到了一個(gè)結(jié)果列表List<T>,其中包含從數(shù)據(jù)庫表中讀取的 100 個(gè)元素T包含字段唯一標(biāo)識(shí)符經(jīng)度緯度價(jià)值我想把它變成多個(gè)千分尺,比如object{id=<unique identifier>,longitude=<longitude>,latitude=<latitude>} <value>object{id=<unique identifier>,longitude=<longitude>,latitude=<latitude>} <value>object{id=<unique identifier>,longitude=<longitude>,latitude=<latitude>} <value>...指標(biāo)應(yīng)由普羅米修斯抓取,然后使用grafana/worldmap 可視化 我正在使用構(gòu)建我的多儀表 MultiGauge l100 = MultiGauge.builder("metric-last100").register(registry);List<T>并且在將其轉(zhuǎn)換為流以供提供時(shí)非常失敗,l100.register(...)如下所示:// SELECT count(*) from job group by status WHERE job = 'dirty'     MultiGauge statuses = MultiGauge.builder("statuses")        .tag("job", "dirty")        .description("The number of widgets in various statuses")        .baseUnit("widgets")        .register(registry);...// run this periodically whenever you re-run your query     statuses.register(  resultSet.stream().map(result ->     Row.of(Tags.of("status", result.getAsString("status")),         result.getAsInt("count"))))這是我的實(shí)際代碼:private MultiGauge l100;...l100 = MultiGauge.builder("ids-metric-last100").register(registry);...   public void updateMetricLast100Deliveries() {  List<C3MpGeodataDOM> last100 = c3MpGeodataDAO.getlast100();  l100.register(    last100.stream().map(        res -> Row.of(            Tags.of(                "sdgnr", res.getMpPK().getSdgnr(),                "latitude", "" + res.getGeo_latitude(),                "longitude", "" + res.getGeo_longitude()),            1)));}請(qǐng)?jiān)徫业挠薮?,有人可以幫忙嗎?
查看完整描述

1 回答

?
哆啦的時(shí)光機(jī)

TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊

你可以嘗試做這樣的事情:


1 - 創(chuàng)建一個(gè)類來存儲(chǔ)您的結(jié)果并將數(shù)據(jù)轉(zhuǎn)換為 MultiGauge.Row


@Data

@Builder

@AllArgsConstructor

@NoArgsConstructor

public class UserData {


  private String gender;

  private Long counter;


  public MultiGauge.Row<UserData> toRow() {

    return MultiGauge.Row.of(Tags.of("gender", gender), this, c -> this.counter);

  }


}

2 - 創(chuàng)建自定義查詢以對(duì)結(jié)果進(jìn)行分組


@Query(value = "select new multigauge.multigauge.UserData(usr.gender, count(usr.id)) " +

    "from users usr " +

    "group by usr.gender")

   List<UserData> retrieveUsersGroupedByGender();

3 - 使用 toRow 方法轉(zhuǎn)換列表并注冊(cè)您的 MultiGauge


@Scheduled(fixedDelay = 1000)

  public void updateGauges() {

    multiGauge.register(userRepository.retrieveUsersGroupedByGender()

      .stream()

      .map(UserData::toRow)

      .collect(toList()), true);

  }

4 - 初始化您的 MultiGauge


@PostConstruct

  public void init() {

    multiGauge = MultiGauge.builder("users_grouped_by_gender_metric").register(prometheusMeterRegistry);

  }

我建議查看官方 GitHub 存儲(chǔ)庫中的單元測(cè)試:


https://github.com/micrometer-metrics/micrometer/blob/master/micrometer-core/src/test/java/io/micrometer/core/instrument/MultiGaugeTest.java


查看完整回答
反對(duì) 回復(fù) 2023-03-09
  • 1 回答
  • 0 關(guān)注
  • 116 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)