Storm中如何进行Librato的Metric度量的实现
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,Storm中如何进行Librato的Metric度量的实现,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。辐射性质介绍一个
千家信息网最后更新 2025年12月02日Storm中如何进行Librato的Metric度量的实现
Storm中如何进行Librato的Metric度量的实现,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
辐射性质介绍一个Librato的Metric度量的实现
package com.digitalpebble.storm.crawler;import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;import java.util.concurrent.Future;import java.util.concurrent.TimeUnit;import org.apache.commons.lang.StringUtils;import org.codehaus.jackson.map.ObjectMapper;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import backtype.storm.metric.api.IMetricsConsumer;import backtype.storm.task.IErrorReporter;import backtype.storm.task.TopologyContext;import com.librato.metrics.HttpPoster;import com.librato.metrics.HttpPoster.Response;import com.librato.metrics.LibratoBatch;import com.librato.metrics.NingHttpPoster;import com.librato.metrics.Sanitizer;import com.librato.metrics.Versions;/** Sends the metrics to Librato **/public class LibratoMetricsConsumer implements IMetricsConsumer { public static final int DEFAULT_BATCH_SIZE = 500; private static final Logger LOG = LoggerFactory .getLogger(LibratoMetricsConsumer.class); private static final String LIB_VERSION = Versions.getVersion( "META-INF/maven/com.librato.metrics/librato-java/pom.properties", LibratoBatch.class); private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); private final Sanitizer sanitizer = new Sanitizer() { public String apply(String name) { return Sanitizer.LAST_PASS.apply(name); } }; private int postBatchSize = DEFAULT_BATCH_SIZE; private long timeout = 30; private final TimeUnit timeoutUnit = TimeUnit.SECONDS; private String userAgent = null; private HttpPoster httpPoster; private Set metricsToKeep = new HashSet(); public void prepare(Map stormConf, Object registrationArgument, TopologyContext context, IErrorReporter errorReporter) { // TODO configure timeouts // this.timeout = timeout; // this.timeoutUnit = timeoutUnit; // this.postBatchSize = postBatchSize; String agentIdentifier = (String) stormConf.get("librato.agent"); if (agentIdentifier == null) agentIdentifier = "storm"; String token = (String) stormConf.get("librato.token"); String username = (String) stormConf.get("librato.username"); String apiUrl = (String) stormConf.get("librato.api.url"); if (apiUrl == null) apiUrl = "https://metrics-api.librato.com/v1/metrics"; // check that the values are not null if (StringUtils.isBlank(token)) throw new RuntimeException("librato.token not set"); if (StringUtils.isBlank(username)) throw new RuntimeException("librato.username not set"); this.userAgent = String.format("%s librato-java/%s", agentIdentifier, LIB_VERSION); this.httpPoster = NingHttpPoster.newPoster(username, token, apiUrl); // get the list of metrics names to keep if any String metrics2keep = (String) stormConf.get("librato.metrics.to.keep"); if (metrics2keep != null) { String[] mets = metrics2keep.split(","); for (String m : mets) metricsToKeep.add(m.trim().toLowerCase()); } } // post(String source, long epoch) public void handleDataPoints(TaskInfo taskInfo, Collection dataPoints) { final Map payloadMap = new HashMap(); payloadMap.put("source", taskInfo.srcComponentId + "_" + taskInfo.srcWorkerHost + "_" + taskInfo.srcTaskId); payloadMap.put("measure_time", taskInfo.timestamp); final List 看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
帮助
清楚
内容
对此
性质
文章
新手
更多
知识
行业
资讯
资讯频道
难题
需求
频道
进一
学习
支持
辐射
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广东网络安全信息化
山东大学外文数据库
信阳金蝶oa软件开发
西安网络安全周2021
赛博昆仑网络安全大会
湖北服务器硬盘测评
安徽阜阳软件开发培训费用
莫古力服务器列表
特别重大网络安全事件的评定标准
网络资产信息技术数据库设计
北京网络安全公司费用
跟软件开发有关的参考文献
软件开发论文参考文献
蒂森用服务器看门锁状态
计算机网络技术教材课本
网络安全之远离不良信息
大连软件开发项目经理薪水
18年网络安全参考文献
斯诺登事件对网络安全
池州金山云网络技术
畅玩7无法连接服务器查找手机
蒸汽幻想服务器总是断开
为什么要进行网络安全知识宣传
首届祥云杯网络安全大赛
天津超融合服务器公司云服务器
qq世界争霸服务器
程序员写软件开发
江苏直销服务器货源充足
数据库安全性答案
服务器打开不可用