我正在尝试使用java api从aws获取ec2实例,s3存储桶和ebs卷的计费信息.我想创建api,它提供特定的实体明智的每小时结算报告.是否有任何java api获得相同的?我在aws java sdk api文档中找不到相同的内容.
我有一个像下面的代码,我在bool查询中必须做多个.在这里,我在字段"地址"中传递必须的术语查询.现在ip地址将作为来自其他api的列表来找我,我必须传递列表中的所有ip作为必须条款查询.在这里,我没有办法在创建QueryBuilder时动态传递地址值.
请建议如何做到这一点.
public static SearchResponse searchResultWithAggregation(String es_index,
String es_type, List<String> ipList, String queryRangeTime) {
Client client = ESClientFactory.getInstance();
QueryBuilder qb = QueryBuilders.boolQuery()
.must(QueryBuilders.termQuery("address", "10.203.238.138"))
.must(QueryBuilders.termQuery("address", "10.203.238.137"))
.must(QueryBuilders.termQuery("address", "10.203.238.136"))
.mustNot(QueryBuilders.termQuery("address", "10.203.238.140"))
.should(QueryBuilders.termQuery("client", ""));
queryRangeTime = "now-" + queryRangeTime + "m";
FilterBuilder fb = FilterBuilders.rangeFilter("@timestamp")
.from(queryRangeTime).to("now");
SearchResponse response = client
.prepareSearch(es_index)
.setTypes(es_type)
.setQuery(qb)
.setPostFilter(fb)
.addAggregation(
AggregationBuilders.avg("cpu_average").field("value"))
.setSize(10).execute().actionGet();
System.out.println(response.toString());
return response;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试通过手动将值传递给构造函数来创建一个虚拟的SearchResponse对象.我有一个JUnit测试类,我正在使用这个虚拟值来模拟实际的方法调用.尝试使用以下方法
public SearchResponse actionGet() throws ElasticsearchException {
ShardSearchFailure[] shardFailures = new ShardSearchFailure[0];
int docId = 0;
String id = "5YmRf-6OTvelt29V5dphmw";
Map<String, SearchHitField> fields = null;
InternalSearchHit internalSearchHit = new InternalSearchHit(docId, id,
null, fields);
InternalSearchHit[] internalSearchHit1 = { internalSearchHit };
InternalSearchResponse EMPTY = new InternalSearchResponse(
new InternalSearchHits(internalSearchHit1, 0, 0), null, null,
null, false);
SearchResponse searchResponse = new SearchResponse(EMPTY, "scrollId",
1, 1, 1000, shardFailures);
return searchResponse;
}
Run Code Online (Sandbox Code Playgroud)
这是我直接查询elasticsearch时json的实际值.
{
"took": 3,
"timed_out": false,
"_shards": {
"total": 3,
"successful": 3,
"failed": 0
}, …Run Code Online (Sandbox Code Playgroud) 我正在elasticsearch中创建一个TransportClient实例.下面是相同的代码.问题是我正在尝试降低使用TransportClient启动的线程池生成的线程数.但是我使用弹性搜索的设置总是用12个线程初始化线程池.请让我知道如何配置相同以获得所需的线程.
public static TransportClient getTransportClient(String ip, int port) {
ImmutableSettings.Builder settings = ImmutableSettings
.settingsBuilder();
settings.put("cluster.name", "elasticsearch");
settings.put("threadpool.bulk.type", "fixed");
settings.put("threadpool.bulk.size" ,5);
settings.put("threadpool.bulk.queue_size", 5);
settings.put("threadpool.index.type" , "fixed");
settings.put("threadpool.index.size" , 5);
settings.put("threadpool.index.queue_size" , 10);
settings.put("threadpool.search.type", "fixed");
settings.put("threadpool.search.size" ,5);
settings.put("threadpool.search.queue_size", 5);
settings.build();
TransportClient instance = new TransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress(ip, port));
return instance;
}
Run Code Online (Sandbox Code Playgroud) 我正在使用jmeter测试我的REST API为10000点击,其中每个http命中将在DB中存储一些数据.我遵循了以下测试计划
我正在并行运行10个线程,每个加速时间为20秒,并且循环1000以实现相同的效果.
但这里的问题是我的线程没有采取独特的数据集.而我的后端HTTP URL期望每个http匹配的唯一字符串.
现在我尝试了以下方法.
单个CSV数据集配置具有10000个唯一值,并且线程组中的所有线程都在读取相同的数据.
为每个线程设置不同的CSV数据,并使用文件名$ {__ threadNum} .csv为线程分配csv文件
使用jmeter _RandomString方法在运行时为每个http命中生成随机字符串,在http post body中我正在传递
{"tenantName":"$ { __ RandandString(15,abcdefghijklmnofqrst1234567#@#%^&*,)}"}
现在上述方法都不适合我.在一段时间后运行测试计划时,2个线程正在尝试使用相同的数据并点击我的HTTP URL.我从http响应中收到冲突错误.我的错误计数不断增加.
现在我真的不明白这两个人试图用同样的数据打击http怎么样?
有人可以解释一下这个问题并帮我设置正确的测试计划配置.
编辑:
所有线程的CSV数据集配置:
HTTP请求:
使用CSV数据集添加测试计划:
我正在尝试使用 spring mvc 在 REST post 方法的请求正文中传递类似值的列表。下面是我的示例代码。请让我知道在 requestbody 中发送列表的正确方法是什么。
@RequestMapping(value = "/userlogin/details", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<String> insertLoginDetails(
@RequestParam("username") String userName,
@RequestBody List<String> listOfID) {
return eventAnalyzerHelper.insertUserLoginDetails(userName,
listOfID);
}
Run Code Online (Sandbox Code Playgroud)
谢谢
java ×5
amazon-ec2 ×1
aws-sdk ×1
jmeter ×1
json ×1
junit ×1
load-testing ×1
rest ×1
spring ×1
spring-mvc ×1