当前位置: 首页 > news >正文

郑州专业的建网站福州网站设计招聘

郑州专业的建网站,福州网站设计招聘,怎么做网站挣钱,网站流量少今日已办 Collector 指标聚合 由于没有找到 Prometheus 官方提供的可以聚合指定时间区间内的聚合函数#xff0c;所以自己对接Prometheus的api来聚合指定容器的cpu_avg、cpu_99th、mem_avg 实现成功后对接小组成员测试完提供的时间序列和相关容器#xff0c;将数据记录在表格…今日已办 Collector 指标聚合 由于没有找到 Prometheus 官方提供的可以聚合指定时间区间内的聚合函数所以自己对接Prometheus的api来聚合指定容器的cpu_avg、cpu_99th、mem_avg 实现成功后对接小组成员测试完提供的时间序列和相关容器将数据记录在表格中 SpringBoot RestControllerJackson json serializationdata aggregation /*** author xzx* date 2023/8/29*/ RestController RequestMapping(/prometheus) public class PrometheusController {GetMappingpublic ResponseResult GetMetrics(RequestParam String ip,RequestParam String containerName,RequestParam String startDay,RequestParam String startHour,RequestParam String startMinute,RequestParam String startSecond,RequestParam String endDay,RequestParam String endHour,RequestParam String endMinute,RequestParam String endSecond,RequestParam int idx) {String queryCpu sum(irate(container_cpu_usage_seconds_total{name\ containerName \}[5m])) without (cpu);String start startDay T startHour : startMinute : startSecond .000Z;String end endDay T endHour : endMinute : endSecond .000Z;ListListObject cpuValues getValues(ip, start, end, queryCpu, idx);ListDouble cpuList new ArrayList();Double sum (double) 0;for (ListObject value : cpuValues) {if (value.size() 2) {Double v Convert.toDouble(value.get(1));sum v;cpuList.add(v);}}Collections.sort(cpuList);String queryMem container_memory_usage_bytes{name\ containerName \};ListListObject memValues getValues(ip, start, end, queryMem, 0);long memSum 0;for (ListObject value : memValues) {if (value.size() 2) {memSum Convert.toLong(value.get(1));}}PrometheusMetricsData data new PrometheusMetricsData().setCpu95th(cpuList.get(Convert.toInt(0.95 * cpuList.size())) * 100).setCpuAvg(sum / Convert.toDouble(cpuValues.size()) * 100).setMemAvg(memSum / memValues.size());return ResponseResult.okResult(data);}private ListListObject getValues(String ip, String start, String end, String queryCpu, int idx) {String body HttpRequest.get(http:// ip /prometheus/api/v1/query_range?query queryCpu start start end end step1s).timeout(20000).execute().body();PrometheusRespDto prometheusRespDto JSONUtil.toBean(body, PrometheusRespDto.class);ListPromResult result prometheusRespDto.getData().getResult();ListListObject values result.get(idx).getValues();return values;}} 测试 确定测试方案 我们打算在 10 万到 100万之间摸一个不会丢的量以及合适的并发量作为不同 collector 测存储和查询的前提 我们能不能固定一个数量然后使用相同的代码来上报相同的trace只是可以控制线程睡眠时间来调整耗时让两种collector都能完整的上报所有数据保证不回丢失最后来计算存储大小 编写测试函数 func TestTraceSpan(t *testing.T) {ctx : context.Background()res, err : resource.New(ctx,resource.WithFromEnv(),resource.WithProcess(),resource.WithTelemetrySDK(),resource.WithHost(),resource.WithAttributes(attribute.String(service.name, test-service),attribute.String(library.language, go),),)if err ! nil {return}otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{}))tracerProviderShutDown : otelclient.InitTraceProvider(res, ctx)defer tracerProviderShutDown()testTracer : otel.Tracer(test_demo, trace.WithInstrumentationAttributes(attribute.String(demo.author, xzx)))group : sync.WaitGroup{}for i : 0; i 50; i {group.Add(1)go func(num int) {for j : 0; j 4000; j {rootCtx, span : testTracer.Start(ctx, demo_root_spanstring(rune(num)), trace.WithSpanKind(trace.SpanKindProducer), trace.WithAttributes(attribute.String(user.username, uuid.NewString())))for k : 0; k 4; k {_, subSpan : testTracer.Start(rootCtx, demo_sub_span, trace.WithSpanKind(trace.SpanKindInternal))if subSpan.IsRecording() {subSpan.SetAttributes(attribute.String(user.uuid, uuid.NewString()),attribute.Int64(user.ip, int64(uuid.New().ID())))}time.Sleep(10 * time.Millisecond)subSpan.End()}time.Sleep(time.Millisecond * 41)span.End()}group.Done()}(i)}group.Wait() }汇总进度和问题 es 的监控平台的 文档数 和 kibana 的数据条数不一致最后以 kibana 的 hits 为基准测试上报最终的数据丢失测试不准确由于并发数太多了大多数据都存储在内存中由于超时被丢弃官方的 otel-collector 的数据库和表创建耗费时间长协助测试组员的记录来聚合容器指标记录表格内容完成 trace-collector、metric-collector的测试结果表格clickhouse的数据**“幻读”** 存在副本同步时间较长写入后需要一段时间后才能看到另一个节点的数据拷贝删除通过SQLDROP Database database_name SYNC 无法drop所有节点的数据库故删除后一段时间后又会查询到该数据库的数据 测试周期较长测试结果的采集不够自动化测试样例和次数不太丰富由于前期的测试方案方向和方法不正确走了很多外路不过在组员的努力和导师的指导下跌跌撞撞勉强完成测试结果。。。 明日待办 PPT制作录制Showcase视频绘制Showcase表格和图像输出测试结果的总结
http://www.dnsts.com.cn/news/124679.html

相关文章:

  • 做网站ie10缓存游戏开发需要的软件
  • 做编程网站有哪些内容安庆市重点工程建设局网站
  • 铁岭做网站公司哪家好网站群建设优点
  • 用html制作网站代码北京建设执业注册中心网站
  • 工商企业信息查询网站微信怎么做一个小程序
  • 做打折的淘宝小卖家的网站广西建网站
  • 网站移动端是什么问题优质网站排名公司
  • 网站首页大小有域名了网站怎么做
  • 建设企业网站官方登录点餐系统微信小程序
  • 网站建设 预付款广州app定制公司
  • 建立网站的顺序怎么开发手机网页
  • wordpress英文站源码关于学校网站建设的需求分析
  • 犀牛做网站的公司上海市建设工程咨询奖
  • 哪些网站做ip向小说ui个人作品集网站
  • wordpress 建站服务自己做头像网站
  • iis创建网站蝶恋直播免费下载
  • 如何做好网站外链个人crm管理系统
  • 儿童 网站欣赏为wordpress 转 app
  • 网站链接安全检测南山区
  • 淘宝网站是谁做的wordpress历史版本号
  • 金乡县网站建设推广100种方式
  • 网站建设与运营课程总结易展 网站建设
  • 珠宝 东莞网站建设东台做淘宝网站
  • 银川微信网站甘肃省建设厅备案在哪个网站
  • 莱芜雪野湖地图网站优化需要做什么
  • 网站title keywords免费域名申请网站
  • 做数据可视化的网站首页优化排名
  • 建设自己的网站有钱赚么淮安网站制作多少钱
  • 公司注册网站怎么做网站建设学生选课系统
  • php做的网站网站建立的优点