skywalking es查询整理
索引介绍
sw_records-all
这个索引用于存储所有的采样记录,包括但不限于慢SQL查询、Agent分析得到的数据等。这些记录数据包括Traces、Logs、TopN采样语句和告警信息。它们被用于性能分析和故障排查,帮助开发者和运维团队理解服务的行为和性能特点。
mapping
{"sw_records-all": {"aliases": {"sw_records-all": {}},"mappings": {"_source": {"excludes": ["tags"]},"properties": {"alarm_message": {"type": "keyword","copy_to": ["alarm_message_match"},"alarm_message_match": {"type": "text","analyzer": "oap_analyzer"},"continuous_profiling_json": {"type": "keyword","index": false},"create_time": {"type": "long"},"data_binary": {"type": "binary"},"dump_binary": {"type": "binary"},"dump_period": {"type": "integer"},"dump_time": {"type": "long"},"duration": {"type": "integer"},"end_time_nanos": {"type": "integer"},"end_time_second": {"type": "long"},"endpoint_name": {"type": "keyword"},"entity_id": {"type": "keyword"},"event": {"type": "keyword"},"extension_config_json": {"type": "keyword","index": false},"fixed_trigger_duration": {"type": "long"},"id0": {"type": "keyword","index": false},"id1": {"type": "keyword","index": false},"instance_id": {"type": "keyword"},"last_update_time": {"type": "long"},"latency": {"type": "long"},"logical_id": {"type": "keyword"},"max_sampling_count": {"type": "integer"},"min_duration_threshold": {"type": "integer"},"name": {"type": "keyword","index": false},"operation_time": {"type": "long"},"operation_type": {"type": "integer","index": false},"process_labels_json": {"type": "keyword"},"record_table": {"type": "keyword"},"related_trace_id": {"type": "keyword"},"rule_name": {"type": "keyword"},"schedule_id": {"type": "keyword"},"scope": {"type": "integer"},"segment_id": {"type": "keyword"},"sequence": {"type": "integer"},"service_id": {"type": "keyword"},"stack_binary": {"type": "binary"},"stack_id": {"type": "keyword"},"start_time": {"type": "long"},"start_time_nanos": {"type": "integer"},"start_time_second": {"type": "long"},"statement": {"type": "keyword","index": false},"tags": {"type": "keyword"},"tags_raw_data": {"type": "binary"},"target_type": {"type": "integer"},"task_id": {"type": "keyword"},"time_bucket": {"type": "long"},"timestamp": {"type": "long"},"trace_id": {"type": "keyword","index": false},"trace_ref_type": {"type": "integer"},"trace_segment_id": {"type": "keyword"},"trace_span_id": {"type": "keyword"},"trigger_type": {"type": "integer"},"upload_time": {"type": "long"}}},"settings": {"index": {"routing": {"allocation": {"include": {"_tier_preference": "data_content"}}},"refresh_interval": "30s","number_of_shards": "1","provided_name": "sw_records-all-20241125","creation_date": "1732464023751","analysis": {"analyzer": {"oap_analyzer": {"type": "stop"}}},"number_of_replicas": "1","uuid": "qrRVCMSNSnO90iz9hHWD0Q","version": {"created": "7170799"}}}} } |
sw_metrics-all
这个索引存储服务、服务实例及端点的元数据,即指标信息。这些指标数据包括服务的响应时间、吞吐量、错误率等关键性能指标,以分钟级别存储。这些数据对于监控服务性能至关重要,因为它们提供了实时的性能反馈,使得团队能够快速识别和解决性能问题。
metric_table枚举值
1、endpoint_cpm:端点的每分钟调用次数(CPM)
2、endpoint_percentile:端点的响应时间百分位数
3、endpoint_resp_time:端点的平均响应时间
4、endpoint_sla:服务等级协议(SLA)指标
5、endpoint_sidecar_internal_req_latency_nanos 和 endpoint_sidecar_internal_resp_latency_nanos:端点Sidecar内部请求和响应延迟的纳秒数
6、instance_jvm_xxx:服务实例的JVM相关指标,如类加载数量、CPU使用率、内存使用情况、垃圾回收次数和线程状态等
7、meter_thread_pool:线程池相关的度量
8、service_instance_cpm、service_instance_resp_time、service_instance_sla:服务实例级别的CPM、响应时间和SLA指标
9、service_instance_sidecar_internal_req_latency_nanos 和 service_instance_sidecar_internal_resp_latency_nanos:服务实例级别的Sidecar内部请求和响应延迟的纳秒数
result
{"key": "endpoint_cpm","doc_count": 5763},{"key": "endpoint_percentile","doc_count": 5763},{"key": "endpoint_resp_time","doc_count": 5763},{"key": "endpoint_sla","doc_count": 5763},{"key": "endpoint_sidecar_internal_req_latency_nanos","doc_count": 5754},{"key": "endpoint_sidecar_internal_resp_latency_nanos","doc_count": 5754},{"key": "instance_jvm_class_loaded_class_count","doc_count": 2811},{"key": "instance_jvm_class_total_loaded_class_count","doc_count": 2811},{"key": "instance_jvm_class_total_unloaded_class_count","doc_count": 2811},{"key": "instance_jvm_cpu","doc_count": 2811},{"key": "instance_jvm_memory_heap","doc_count": 2811},{"key": "instance_jvm_memory_heap_max","doc_count": 2811},{"key": "instance_jvm_memory_noheap","doc_count": 2811},{"key": "instance_jvm_memory_noheap_max","doc_count": 2811},{"key": "instance_jvm_old_gc_count","doc_count": 2811},{"key": "instance_jvm_old_gc_time","doc_count": 2811},{"key": "instance_jvm_thread_blocked_state_thread_count","doc_count": 2811},{"key": "instance_jvm_thread_daemon_count","doc_count": 2811},{"key": "instance_jvm_thread_live_count","doc_count": 2811},{"key": "instance_jvm_thread_peak_count","doc_count": 2811},{"key": "instance_jvm_thread_runnable_state_thread_count","doc_count": 2811},{"key": "instance_jvm_thread_timed_waiting_state_thread_count","doc_count": 2811},{"key": "instance_jvm_thread_waiting_state_thread_count","doc_count": 2811},{"key": "instance_jvm_young_gc_count","doc_count": 2811},{"key": "instance_jvm_young_gc_time","doc_count": 2811},{"key": "meter_thread_pool","doc_count": 2811},{"key": "service_instance_cpm","doc_count": 1661},{"key": "service_instance_resp_time","doc_count": 1661},{"key": "service_instance_sla","doc_count": 1661},{"key": "service_instance_sidecar_internal_req_latency_nanos","doc_count": 1659},{"key": "service_instance_sidecar_internal_resp_latency_nanos","doc_count": 1659} |
mapping
{"sw_metrics-all-20241125": {"aliases": {"sw_metrics-all": {}},"mappings": {"properties": {"address": {"type": "keyword"},"agent_id": {"type": "keyword"},"component_id": {"type": "integer","index": false},"component_ids": {"type": "keyword","index": false},"count": {"type": "long","index": false},"dataset": {"type": "text","index": false},"datatable_count": {"type": "text","index": false},"datatable_summation": {"type": "text","index": false},"datatable_value": {"type": "text","index": false},"denominator": {"type": "long"},"dest_endpoint": {"type": "keyword"},"dest_process_id": {"type": "keyword"},"dest_service_id": {"type": "keyword"},"dest_service_instance_id": {"type": "keyword"},"detect_type": {"type": "integer"},"double_summation": {"type": "double","index": false},"double_value": {"type": "double"},"ebpf_profiling_schedule_id": {"type": "keyword"},"end_time": {"type": "long"},"endpoint": {"type": "keyword"},"endpoint_traffic_name": {"type": "keyword","copy_to": ["endpoint_traffic_name_match"]},"endpoint_traffic_name_match": {"type": "text","analyzer": "oap_analyzer"},"entity_id": {"type": "keyword"},"instance_id": {"type": "keyword"},"instance_traffic_name": {"type": "keyword","index": false},"int_value": {"type": "integer"},"label": {"type": "keyword"},"labels_json": {"type": "keyword","index": false},"last_ping": {"type": "long"},"last_update_time_bucket": {"type": "long"},"layer": {"type": "integer"},"match": {"type": "long","index": false},"message": {"type": "keyword"},"metric_table": {"type": "keyword"},"name": {"type": "keyword"},"numerator": {"type": "long"},"parameters": {"type": "keyword","index": false},"percentage": {"type": "integer"},"precision": {"type": "integer","index": false},"process_id": {"type": "keyword"},"profiling_support_status": {"type": "integer"},"properties": {"type": "text","index": false},"ranks": {"type": "text","index": false},"remote_service_name": {"type": "keyword"},"represent_service_id": {"type": "keyword"},"represent_service_instance_id": {"type": "keyword"},"s_num": {"type": "long","index": false},"service": {"type": "keyword"},"service_group": {"type": "keyword"},"service_id": {"type": "keyword"},"service_instance": {"type": "keyword"},"service_instance_id": {"type": "keyword"},"service_name": {"type": "keyword"},"service_traffic_name": {"type": "keyword","copy_to": ["service_traffic_name_match"]},"service_traffic_name_match": {"type": "text","analyzer": "oap_analyzer"},"short_name": {"type": "keyword"},"source_endpoint": {"type": "keyword"},"source_process_id": {"type": "keyword"},"source_service_id": {"type": "keyword"},"source_service_instance_id": {"type": "keyword"},"span_name": {"type": "keyword"},"start_time": {"type": "long"},"summation": {"type": "long","index": false},"t_num": {"type": "long","index": false},"tag_key": {"type": "keyword"},"tag_type": {"type": "keyword"},"tag_value": {"type": "keyword"},"task_id": {"type": "keyword"},"time_bucket": {"type": "long"},"total": {"type": "long","index": false},"total_num": {"type": "long","index": false},"type": {"type": "keyword"},"uuid": {"type": "keyword"},"value": {"type": "long"}}},"settings": {"index": {"routing": {"allocation": {"include": {"_tier_preference": "data_content"}}},"refresh_interval": "30s","number_of_shards": "1","provided_name": "sw_metrics-all-20241125","creation_date": "1732464018472","analysis": {"analyzer": {"oap_analyzer": {"type": "stop"}}},"number_of_replicas": "1","uuid": "WzZSWrHRSKaHFFwbm5D75A","version": {"created": "7170799"}}}} } |
字段解释
address:服务实例的网络地址
agent_id:SkyWalking Agent的唯一标识符
component_id:组件的唯一标识符
component_ids:一个包含多个组件ID的列表,用于标识服务中使用的所有组件
count:计数器,记录调用次数等
dataset:数据集的标识符,用于区分不同类型的监控数据
datatable_count、datatable_summation、datatable_value:与数据表相关的字段,用于存储汇总数据
denominator:用于计算比率的分母值
dest_endpoint:目标端点的名称,用于标识服务调用的目标
dest_process_id、dest_service_id、dest_service_instance_id:目标进程、服务和实例的唯一标识符
detect_type:检测类型的标识符
double_summation:双精度浮点数的总和
double_value:双精度浮点数值
ebpf_profiling_schedule_id:eBPF性能分析任务的标识符
end_time:事件或记录的结束时间戳
endpoint:端点的名称,用于标识服务中的特定操作
endpoint_traffic_name:端点流量的名称,用于标识端点的流量
entity_id:实体的唯一标识符,用于标识服务、端点或实例
instance_id:服务实例的唯一标识符
instance_traffic_name:服务实例流量的名称
int_value:整数值
label:用于分类或标记数据的标签
labels_json:包含多个标签的JSON字符串
last_ping:服务实例最后一次发送心跳的时间戳
last_update_time_bucket:数据最后一次更新的时间桶
layer:服务的层次或层级
match:用于匹配规则的标识符
message:与事件或日志相关的信息
metric_table:度量表的名称,用于标识特定的度量数据
name:实体、服务或端点的名称
numerator:用于计算比率的分子值
parameters:与事件或操作相关的参数
percentage:百分比值
precision:数据的精度
process_id:进程的唯一标识符
profiling_support_status:性能分析支持的状态
properties:实体的属性
ranks:排名或等级
remote_service_name:远程服务的名称
represent_service_id、represent_service_instance_id:表示服务或实例的唯一标识符
s_num:用于统计的数值
service:服务的名称
service_group:服务组的名称
service_id:服务的唯一标识符
service_instance:服务实例的名称
service_instance_id:服务实例的唯一标识符
service_name:服务的名称
service_traffic_name:服务流量的名称
short_name:实体的简称或缩写
source_endpoint:源端点的名称
source_process_id、source_service_id、source_service_instance_id:源进程、服务和实例的唯一标识符
span_name:跨度(Span)的名称,用于分布式追踪
start_time:事件或记录的开始时间戳
summation:数值的总和
t_num:用于统计的数值
tag_key、tag_type、tag_value:标签的键、类型和值
task_id:任务的唯一标识符
time_bucket:时间桶,用于数据的时序聚合
total、total_num:总数和数量
type:数据的类型
uuid:全局唯一标识符
value:度量值
sw_segment
sw_segment索引用于收集链路信息日志。在SkyWalking中,一个Segment代表一个分布式追踪的路径,它由多个Span组成,记录了一次完整的请求处理过程。这些数据对于理解服务之间的调用关系和性能特性非常重要,它们是实现分布式追踪和性能监控的基础。
sw_zipkin_span
sw_zipkin_span索引用于存储Zipkin跟踪的Span数据。SkyWalking可以作为Zipkin的替代服务器,提供高级功能,这个索引就是用来兼容Zipkin格式的追踪数据。
sw_browser_error_log
sw_browser_error_log索引用于收集浏览器日志,特别是错误日志。这些日志对于前端监控和错误分析非常有用,可以帮助开发者了解用户在使用应用时遇到的前端问题。
sw_log
sw_log索引用于收集除浏览器外的日志。这些日志可能来自于后端服务、中间件或其他系统组件,对于整体的系统监控和日志分析非常重要。
sw_continuous_profiling_policy
这个索引用于存储连续性能分析(Continuous Profiling)的策略配置。连续性能分析是SkyWalking的一个特性,它允许基于预设的策略自动触发性能分析任务。这些策略可以定义何时以及如何对特定的目标(如进程或服务)进行性能分析,以便及时发现和诊断性能问题。例如,当eBPF Agent检测到某个进程的指标符合策略规则时,它会立即触发对该进程的性能分析任务,从而减少中间步骤,加快定位性能问题的能力
sw_ui_template
sw_ui_template索引用于存储SkyWalking UI的模板配置。这些模板定义了SkyWalking UI中的仪表板和视图,包括官方提供的默认仪表板以及用户自定义的仪表板。用户可以通过这些模板来创建新的仪表板,添加新的标签/页面/小部件,并根据自己的偏好重新配置仪表板。模板支持层(Layer)和实体类型(Entity Type)的概念,这对于理解和自定义SkyWalking UI中的仪表板至关重要
查询语句整理
查询sw_metrics-all索引
1、查找特定时间范围内,与特定服务相关的服务关系指标
{"size": 0,"query": {"bool": {"must": [{"range": {"time_bucket": {"from": 202411221112,"to": 202411221142,"include_lower": true,"include_upper": true,"boost": 1.0}}},{"bool": {"should": [{"term": {"source_service_id": {"value": "c2VydmljZTo6dGVuZGF0YS1jb250YWN0LXNlcnZpY2U=.1","boost": 1.0}}},{"term": {"dest_service_id": {"value": "c2VydmljZTo6dGVuZGF0YS1jb250YWN0LXNlcnZpY2U=.1","boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}},{"term": {"metric_table": {"value": "service_relation_server_side","boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}},"aggregations": {"entity_id": {"terms": {"field": "entity_id","size": 1000,"min_doc_count": 1,"shard_min_doc_count": 0,"show_term_doc_count_error": false,"execution_hint": "map","order": [{"_count": "desc"},{"_key": "asc"}],"collect_mode": "breadth_first"},"aggregations": {"component_ids": {"terms": {"field": "component_ids","size": 10,"min_doc_count": 1,"shard_min_doc_count": 0,"show_term_doc_count_error": false,"execution_hint": "map","order": [{"_count": "desc"},{"_key": "asc"}],"collect_mode": "breadth_first"}}}}} } |
2、对特定时间范围内的服务间关系数据进行聚合分析
{"size": 0,"query": {"bool": {"must": [{"range": {"time_bucket": {"from": 202411221112,"to": 202411221142,"include_lower": true,"include_upper": true,"boost": 1.0}}},{"bool": {"should": [{"term": {"source_service_id": {"value": "c2VydmljZTo6dGVuZGF0YS1jb250YWN0LXNlcnZpY2U=.1","boost": 1.0}}},{"term": {"dest_service_id": {"value": "c2VydmljZTo6dGVuZGF0YS1jb250YWN0LXNlcnZpY2U=.1","boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}},{"term": {"metric_table": {"value": "service_relation_client_side","boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}},"aggregations": {"entity_id": {"terms": {"field": "entity_id","size": 1000,"min_doc_count": 1,"shard_min_doc_count": 0,"show_term_doc_count_error": false,"execution_hint": "map","order": [{"_count": "desc"},{"_key": "asc"}],"collect_mode": "breadth_first"},"aggregations": {"component_ids": {"terms": {"field": "component_ids","size": 10,"min_doc_count": 1,"shard_min_doc_count": 0,"show_term_doc_count_error": false,"execution_hint": "map","order": [{"_count": "desc"},{"_key": "asc"}],"collect_mode": "breadth_first"}}}}} } |
3、统计服务下的实例流量
{"size": 5000,"query": {"bool": {"must": [{"range": {"last_ping": {"from": 202411221112,"to": null,"include_lower": true,"include_upper": true,"boost": 1.0}}},{"term": {"service_id": {"value": "c2VydmljZTo6dGVuZGF0YS1tZXNzYWdlLXNlcnZpY2U=.1","boost": 1.0}}},{"term": {"metric_table": {"value": "instance_traffic","boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}} } |
4、统计服务下的端点流量
{"size": 20,"query": {"bool": {"must": [{"term": {"service_id": {"value": "c2VydmljZTo6dGVuZGF0YS1tZXNzYWdlLXNlcnZpY2U=.1","boost": 1.0}}},{"term": {"metric_table": {"value": "endpoint_traffic","boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}} } |
5、查询标签数据
{"query": {"bool": {"must": [{"term": {"tag_type": {"value": "TRACE","boost": 1.0}}},{"term": {"metric_table": {"value": "tag_autocomplete","boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}},"aggregations": {"tag_key": {"terms": {"field": "tag_key","size": 100,"min_doc_count": 1,"shard_min_doc_count": 0,"show_term_doc_count_error": false,"order": [{"_count": "desc"},{"_key": "asc"}]}}} } |
6、统计服务流量
{"size": 5000,"query": {"bool": {"must": [{"term": {"layer": {"value": 2,"boost": 1.0}}},{"term": {"metric_table": {"value": "service_traffic","boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}} } |
7、计算服务间的服务每分钟调用次数
{"size": 0,"query": {"bool": {"must": [{"range": {"time_bucket": {"from": 202411221112,"to": 202411221142,"include_lower": true,"include_upper": true,"boost": 1.0}}},{"terms": {"entity_id": ["MTkyLjE2OC4zMC4xOjkwOTI7MTkyLjE2OC4zMC4zOjkwOTI=.1-c2VydmljZTo6dGVuZGF0YS1jb3JwLXNlcnZpY2U=.1"],"boost": 1.0}},{"term": {"metric_table": {"value": "service_relation_server_cpm","boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}},"aggregations": {"entity_id": {"terms": {"field": "entity_id","size": 1,"min_doc_count": 1,"shard_min_doc_count": 0,"show_term_doc_count_error": false,"execution_hint": "map","order": [{"_count": "desc"},{"_key": "asc"}],"collect_mode": "breadth_first"},"aggregations": {"value": {"avg": {"field": "value"}}}}} } |
8、计算服务间的服务响应时间
{"size": 0,"query": {"bool": {"must": [{"range": {"time_bucket": {"from": 202411221112,"to": 202411221142,"include_lower": true,"include_upper": true,"boost": 1.0}}},{"terms": {"entity_id": ["c2VydmljZTo6dGVuZGF0YS1iaXpyLXNlcnZpY2U=.1-c2VydmljZTo6dGVuZGF0YS1nbG9jby1zZXJ2aWNl.1"],"boost": 1.0}},{"term": {"metric_table": {"value": "service_relation_server_resp_time","boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}},"aggregations": {"entity_id": {"terms": {"field": "entity_id","size": 1,"min_doc_count": 1,"shard_min_doc_count": 0,"show_term_doc_count_error": false,"execution_hint": "map","order": [{"_count": "desc"},{"_key": "asc"}],"collect_mode": "breadth_first"},"aggregations": {"value": {"avg": {"field": "value"}}}}} } |
9、计算服务间的服务客户端响应时间
{"size": 0,"query": {"bool": {"must": [{"range": {"time_bucket": {"from": 202411221112,"to": 202411221142,"include_lower": true,"include_upper": true,"boost": 1.0}}},{"terms": {"entity_id": ["c2VydmljZTo6dGVuZGF0YS1tY3Mtc2VydmljZQ==.1-MTkyLjE2OC4zMC4xOjkwOTI7MTkyLjE2OC4zMC4zOjkwOTI=.0"],"boost": 1.0}},{"term": {"metric_table": {"value": "service_relation_client_resp_time","boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}},"aggregations": {"entity_id": {"terms": {"field": "entity_id","size": 1,"min_doc_count": 1,"shard_min_doc_count": 0,"show_term_doc_count_error": false,"execution_hint": "map","order": [{"_count": "desc"},{"_key": "asc"}],"collect_mode": "breadth_first"},"aggregations": {"value": {"avg": {"field": "value"}}}}} } |
10、计算服务间的客户端每分钟调用次数
{"size": 0,"query": {"bool": {"must": [{"range": {"time_bucket": {"from": 202411221112,"to": 202411221142,"include_lower": true,"include_upper": true,"boost": 1.0}}},{"terms": {"entity_id": ["c2VydmljZTo6dGVuZGF0YS10cmFuc2xhdGlvbi1zZXJ2aWNl.1-YXBpLnRyYW5zbGF0b3IuYXp1cmUuY246NDQz.1"],"boost": 1.0}},{"term": {"metric_table": {"value": "service_relation_client_cpm","boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}},"aggregations": {"entity_id": {"terms": {"field": "entity_id","size": 1,"min_doc_count": 1,"shard_min_doc_count": 0,"show_term_doc_count_error": false,"execution_hint": "map","order": [{"_count": "desc"},{"_key": "asc"}],"collect_mode": "breadth_first"},"aggregations": {"value": {"avg": {"field": "value"}}}}} } |
11、计算服务响应时间service_resp_time
{"size": 0,"query": {"bool": {"must": [{"range": {"time_bucket": {"from": 202411221112,"to": 202411221142,"include_lower": true,"include_upper": true,"boost": 1.0}}},{"terms": {"entity_id": ["c2VydmljZTo6dGVuZGF0YS1tY3Mtc2VydmljZQ==.1"],"boost": 1.0}},{"term": {"metric_table": {"value": "service_resp_time","boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}},"aggregations": {"entity_id": {"terms": {"field": "entity_id","size": 1,"min_doc_count": 1,"shard_min_doc_count": 0,"show_term_doc_count_error": false,"execution_hint": "map","order": [{"_count": "desc"},{"_key": "asc"}],"collect_mode": "breadth_first"},"aggregations": {"value": {"avg": {"field": "value"}}}}} } |
12、计算服务级别协议的成功百分比service_sla
{"size": 0,"query": {"bool": {"must": [{"range": {"time_bucket": {"from": 202411221112,"to": 202411221142,"include_lower": true,"include_upper": true,"boost": 1.0}}},{"terms": {"entity_id": ["c2VydmljZTo6dGVuZGF0YS1vcGVuYXBpLWdhdGV3YXktc2VydmljZQ==.1"],"boost": 1.0}},{"term": {"metric_table": {"value": "service_sla","boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}},"aggregations": {"entity_id": {"terms": {"field": "entity_id","size": 1,"min_doc_count": 1,"shard_min_doc_count": 0,"show_term_doc_count_error": false,"execution_hint": "map","order": [{"_count": "desc"},{"_key": "asc"}],"collect_mode": "breadth_first"},"aggregations": {"percentage": {"avg": {"field": "percentage"}}}}} } |
13、计算服务每分钟请求数service_cpm
{"size": 0,"query": {"bool": {"must": [{"range": {"time_bucket": {"from": 202411221112,"to": 202411221142,"include_lower": true,"include_upper": true,"boost": 1.0}}},{"terms": {"entity_id": ["c2VydmljZTo6dGVuZGF0YS1kZnMtc2VydmljZQ==.1"],"boost": 1.0}},{"term": {"metric_table": {"value": "service_cpm","boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}},"aggregations": {"entity_id": {"terms": {"field": "entity_id","size": 1,"min_doc_count": 1,"shard_min_doc_count": 0,"show_term_doc_count_error": false,"execution_hint": "map","order": [{"_count": "desc"},{"_key": "asc"}],"collect_mode": "breadth_first"},"aggregations": {"value": {"avg": {"field": "value"}}}}} } |
14、查询网络地址别名
{"size": 5000,"query": {"bool": {"must": [{"term": {"metric_table": {"value": "network_address_alias","boost": 1.0}}},{"range": {"last_update_time_bucket": {"from": 202411221132,"to": null,"include_lower": true,"include_upper": true,"boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}} } |
15、检索 service为service::tendata-contact-service的事件列表
{"from": 0,"size": 20,"query": {"bool": {"must": [{"term": {"metric_table": {"value": "events","boost": 1.0}}},{"term": {"service": {"value": "service::tendata-contact-service","boost": 1.0}}},{"range": {"start_time": {"from": 1732245120000,"to": null,"include_lower": false,"include_upper": true,"boost": 1.0}}},{"range": {"end_time": {"from": null,"to": 1732246980000,"include_lower": true,"include_upper": false,"boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}},"sort": [{"start_time": {"order": "desc"}}] } |
16、分页获取特定时间段内特定服务指标数据,并按时间戳排序
{"from": 0,"size": 15,"query": {"bool": {"must": [{"range": {"time_bucket": {"from": 20241122111200,"to": 20241122114259,"include_lower": true,"include_upper": true,"boost": 1.0}}},{"term": {"service_id": {"value": "c2VydmljZTo6dGVuZGF0YS1tZXNzYWdlLXNlcnZpY2U=.1","boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}},"sort": [{"timestamp": {"order": "desc"}}] } |
17、根据传递的id查询端点信息
{"size": 156,"query": {"ids": {"values": ["endpoint_traffic_c2VydmljZTo6dGVuZGF0YS1nYXRld2F5LXNlcnZpY2U=.1_L2luc2lnaHQtc2VhcmNoL3YxL3Byb2dyYW1tZXMvMjkyNTcvbWFya2V0LWNvdW50ZXJwYXJ0eS1hcmVh","endpoint_traffic_c2VydmljZTo6dGVuZGF0YS1nYXRld2F5LXNlcnZpY2U=.1_L2NvcnAvdjIvY29tcGFuaWVzLzEwYzdkMWVjYTY4NTE0NDQ1NzQ5OWVkZTJkZTQxY2I1L3JlZnJlc2gvcmVzdWx0"],"boost": 1.0}} } |
18、查询某个服务的每分钟请求次数最多的10个接口
{"query": {"bool": {"must": [{"term": {"metric_table": {"value": "endpoint_cpm","boost": 1.0}}},{"terms": {"service_id": ["c2VydmljZTo6dGVuZGF0YS1jb250YWN0LXNlcnZpY2U=.1"],"boost": 1.0}},{"range": {"time_bucket": {"from": 202411221112,"to": 202411221142,"include_lower": true,"include_upper": true,"boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}},"aggregations": {"entity_id": {"terms": {"field": "entity_id","size": 10,"min_doc_count": 1,"shard_min_doc_count": 0,"show_term_doc_count_error": false,"execution_hint": "map","order": [{"value": "desc"},{"_key": "asc"}],"collect_mode": "breadth_first"},"aggregations": {"value": {"avg": {"field": "value"}}}}} } |
19、查询某个服务的响应时间最大的10个接口
{"query": {"bool": {"must": [{"term": {"metric_table": {"value": "endpoint_resp_time","boost": 1.0}}},{"terms": {"service_id": ["c2VydmljZTo6dGVuZGF0YS1jb250YWN0LXNlcnZpY2U=.1"],"boost": 1.0}},{"range": {"time_bucket": {"from": 202411221112,"to": 202411221142,"include_lower": true,"include_upper": true,"boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}},"aggregations": {"entity_id": {"terms": {"field": "entity_id","size": 10,"min_doc_count": 1,"shard_min_doc_count": 0,"show_term_doc_count_error": false,"execution_hint": "map","order": [{"value": "desc"},{"_key": "asc"}],"collect_mode": "breadth_first"},"aggregations": {"value": {"avg": {"field": "value"}}}}} } |
20、查询某个服务的指定时间范围内成功率最小的10个接口
{"query": {"bool": {"must": [{"term": {"metric_table": {"value": "endpoint_sla","boost": 1.0}}},{"terms": {"service_id": ["c2VydmljZTo6dGVuZGF0YS1jb250YWN0LXNlcnZpY2U=.1"],"boost": 1.0}},{"range": {"time_bucket": {"from": 202411221112,"to": 202411221142,"include_lower": true,"include_upper": true,"boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}},"aggregations": {"entity_id": {"terms": {"field": "entity_id","size": 10,"min_doc_count": 1,"shard_min_doc_count": 0,"show_term_doc_count_error": false,"execution_hint": "map","order": [{"percentage": "asc"},{"_key": "asc"}],"collect_mode": "breadth_first"},"aggregations": {"percentage": {"avg": {"field": "percentage"}}}}} } |
21、查询标签信息
{"size": 12,"query": {"ids": {"values": ["tag_autocomplete_20241122_TRACE_db.instance_[im_moldova-2024, im_moldova-2022, im_moldova-2023, im_moldova-2021]","tag_autocomplete_20241122_TRACE_db.instance_[a04b2a53a6d946ad9fe525cd1ab2646a_alias]","tag_autocomplete_20241122_TRACE_db.instance_[im_maritime_silk_bol-2022, im_maritime_silk_bol-2023, im_maritime_silk_bol-2021, im_maritime_silk_bol-2024]"],"boost": 1.0}} } |
查询sw_records-all索引
1、查询优化任务列表
{"size": 200,"query": {"bool": {"must": [{"term": {"record_table": {"value": "profile_task","boost": 1.0}}},{"range": {"time_bucket": {"from": 202411221137,"to": null,"include_lower": true,"include_upper": true,"boost": 1.0}}},{"range": {"time_bucket": {"from": null,"to": 202411221147,"include_lower": true,"include_upper": true,"boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}},"sort": [{"start_time": {"order": "desc"}}] } |
2、查询sw_records-all与特定跨度(Span)关联的事件记录
{"size": 100,"query": {"bool": {"must": [{"term": {"record_table": {"value": "span_attached_event_record","boost": 1.0}}},{"terms": {"related_trace_id": ["ab80cf2b85fa4f3e9baabd114f3b909e.98.17322469467401053"],"boost": 1.0}},{"terms": {"trace_ref_type": [0],"boost": 1.0}}],"adjust_pure_negative": true,"boost": 1.0}},"sort": [{"start_time_second": {"order": "asc"}},{"start_time_nanos": {"order": "asc"}}] } |
3、检索ebpf优化任务
{"size": 200,"query": {"bool": {"must": [{"term": {"record_table": {"value": "ebpf_profiling_task","boost": 1.0}}},{"term": {"service_id": {"value": "c2VydmljZTo6dGVuZGF0YS1jb250YWN0LXNlcnZpY2U=.1","boost": 1.0}}},{"terms": {"target_type": [1,2],"boost": 1.0}},{"term": {"trigger_type": {"value": 1,"boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}},"sort": [{"create_time": {"order": "desc"}}] } |
4、查询性能任务日志
{"size": 10000,"query": {"bool": {"must": [{"term": {"record_table": {"value": "profile_task_log","boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}},"sort": [{"operation_time": {"order": "desc"}}] } |
查询sw_segment索引
1、查询某个服务的流量
{"size": 1,"query": {"ids": {"values": ["service_traffic_MTkyLjE2OC4xMS4xMDo1Njcy.15"],"boost": 1.0}} } |
2、查询某个调用链信息
{"size": 200,"query": {"term": {"trace_id": {"value": "ab80cf2b85fa4f3e9baabd114f3b909e.98.17322469467401053","boost": 1.0}}} } |
3、分页获取特定时间段内特定服务调用数据,并按开始时间排序
{"from": 0,"size": 20,"query": {"bool": {"must": [{"range": {"time_bucket": {"from": 20241122111200,"to": 20241122114259,"include_lower": true,"include_upper": true,"boost": 1.0}}},{"term": {"service_id": {"value": "c2VydmljZTo6dGVuZGF0YS1jb250YWN0LXNlcnZpY2U=.1","boost": 1.0}}}],"adjust_pure_negative": true,"boost": 1.0}},"sort": [{"start_time": {"order": "desc"}}] } |
相关文章:
skywalking es查询整理
索引介绍 sw_records-all 这个索引用于存储所有的采样记录,包括但不限于慢SQL查询、Agent分析得到的数据等。这些记录数据包括Traces、Logs、TopN采样语句和告警信息。它们被用于性能分析和故障排查,帮助开发者和运维团队理解服务的行为和性能特点。 …...
AI时代的软件工程:迎接LLM-DevOps的新纪元
在科技日新月异的今天,GPT的问世无疑为各行各业带来了一场深刻的变革,而软件工程领域更是首当其冲,正式迈入了软件工程3.0的新纪元。2024年,作为软件工程3.0的元年,伴随着软件工程3.0宣言的震撼发布,一个全…...
【机器学习】——卷积与循环的交响曲:神经网络模型在现代科技中的协奏
🎼个人主页:【Y小夜】 😎作者简介:一位双非学校的大二学生,编程爱好者, 专注于基础和实战分享,欢迎私信咨询! 🎆入门专栏:🎇【MySQL࿰…...
详解Servlet的使用
目录 Servlet 定义 动态页面 vs 静态页面 主要功能 Servlet的使用 创建Maven项目 引入依赖 创建目录 编写代码 打war包 部署程序 验证程序 Smart Tomcat 安装Smart Tomcat 配置Smart Tomcat插件 启动Tomcat 访问页面 路径对应关系 Servlet运行原理 Tomcat的…...
使用Java代码操作Kafka(五):Kafka消费 offset API,包含指定 Offset 消费以及指定时间消费
文章目录 1、指定 Offset 消费2、指定时间消费 1、指定 Offset 消费 auto.offset.reset earliest | latest | none 默认是 latest (1)earliest:自动将偏移量重置为最早的偏移量,–from-beginning (2)lates…...
MAC 怎么终端怎么退出和进入Anaconda环境
mac安装完anaconda 后,命令行窗口默认使用conda的,取消默认,用以下一行代码在命令行运行即可,重启终端: conda config --set auto_activate_base false # 将false改为true设置默认环境为conda进入conda环境ÿ…...
如何在 .gitignore 中仅保留特定文件:以忽略文件夹中的所有文件为例
在日常的开发工作中,使用 Git 来管理项目是不可或缺的一部分。项目中的某些文件夹可能包含大量的临时文件、生成文件或不需要版本控制的文件。在这种情况下,我们通常会使用 .gitignore 文件来忽略这些文件夹。然而,有时我们可能希望在忽略整个…...
USRP:B205mini-i
USRP B205mini-i B205mini-i都是采用工业级的FPGA芯片(-I表示industrial-grade),所以价格贵。 这个工业级会让工作温度从原来 0 – 45 C 变为 -40 – 75 C. 温度的扩宽,会让工作的稳定性变好。但是前提是你需要配合NI的外壳才行,你如果只买一…...
Oracle SQL优化②——访问路径
前言 访问路径指的就是通过哪种扫描方式获取数据,比如全表扫描、索引扫描或者直接通过ROWID获取数据。想要完成SQL优化,就必须深入理解各种访问路径。本文章详细介绍常见的访问路径。 一.常见访问路径 1.TABLE ACCESS FULL 表示全表扫描,…...
k8s1.30.0高可用集群部署
负载均衡 nginx负载均衡 两台nginx负载均衡 vim /etc/nginx/nginx.conf stream {upstream kube-apiserver {server 192.168.0.11:6443 max_fails3 fail_timeout30s;#server 192.168.0.12:6443 max_fails3 fail_timeout30s;#server 192.168.0.13:6443 max_fails3…...
Jenkins的环境部署
day22 回顾 Jenkins 简介 官网Jenkins Jenkins Build great things at any scale The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project. 用来构建一切 其实就是用Java写的一个项目…...
Android开发教程案例源码分享-匹配动画多个头像飘动效果
Android开发教程案例源码分享-匹配动画多个头像飘动效果 匹配往往出现多个头像飘动,吸引人点击,有时出现的位置还不固定 一、思路: 用MotionLayout 二、效果图: 看视频更直观点: Android开发教程案例源码分享-匹配…...
微信分账系统供应链分润微信支付 (亲测源码)
搭建环境:nginxphp7.2mysql5.7 1.上传源码到网站根目录并解压 2.导入数据库文件到数据库 3.修改数据库链接文件/.env 4.设置运行目录为/public 5.伪静态设置成tp 6.后台地址:域名/zh9025.php 源码下载:https://download.csdn.net/down…...
C#里怎么样使用BinaryReader和BinaryWriter类?
C#里怎么样使用BinaryReader和BinaryWriter类? 二进制读取,有时候就比较有用。 比如在数据序列化到文件里,再从文件里读取出来。因为写入文件的类型有很多种,比如int/bool/long/byte/bytes等等。 又比如在串口通讯,或者网络通讯里,也需要把数据类型序列化到缓冲区,然后…...
k8s1.31版本最新版本集群使用容器镜像仓库Harbor
虚拟机 rocky9.4 linux master node01 node02 已部署k8s集群版本 1.31 方法 一 使用容器部署harbor (1) wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo yum -y install docker-ce systemctl enable docker…...
【大数据学习 | Spark-Core】Spark提交及运行流程
spark的集群运行结构 我们要选择第一种使用方式 命令组成结构 spark-submit [选项] jar包 参数 standalone集群能够使用的选项。 --master MASTER_URL #集群地址 --class class_name #jar包中的类 --executor-memory MEM #executor的内存 --executor-cores NUM # executor的…...
Sickos1.1 详细靶机思路 实操笔记
Sickos1.1 详细靶机思路 实操笔记 免责声明 本博客提供的所有信息仅供学习和研究目的,旨在提高读者的网络安全意识和技术能力。请在合法合规的前提下使用本文中提供的任何技术、方法或工具。如果您选择使用本博客中的任何信息进行非法活动,您将独自承担…...
Python 获取微博用户信息及作品(完整版)
在当今的社交媒体时代,微博作为一个热门的社交平台,蕴含着海量的用户信息和丰富多样的内容。今天,我将带大家深入了解一段 Python 代码,它能够帮助我们获取微博用户的基本信息以及下载其微博中的相关素材,比如图片等。…...
使用element-plus el-table中使用el-image层级冲突table表格会覆盖预览的图片等问题
在日常开发项目中 使用element-plus 中表格中使用 el-image的点击图片出现图片预览 会出现以下问题 表格一行会覆盖预览的图片 鼠标滑过也会显示表格 el-image 的预览层级和表格的层级冲突导致的。 解决方法:有两种一种是直接使用样式穿透 第二种推荐方法 使用官网推…...
leetcode_25_k个一组翻转链表
力扣:k个一组翻转链表 链接:https://leetcode.cn/problems/reverse-nodes-in-k-group/ 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k…...
Python Selenium:Web自动化测试与爬虫开发
Python Selenium:Web自动化测试与爬虫开发 Python Selenium:Web自动化测试与爬虫开发安装Selenium设置WebDriver基础示例页面元素交互处理JavaScript和Cookies浏览器控制屏幕截图Headless Mode结束会话错误处理与调试 ***本文由AI辅助生成*** Python Se…...
C语言菜鸟入门·关键字·int的用法
目录 1. int关键字 1.1 取值范围 1.2 符号类型 1.3 运算 1.3.1 加法运算() 1.3.2 减法运算(-) 1.3.3 乘法运算(*) 1.3.4 除法运算(/) 1.3.5 取余运算(%) 1.3.6 自增()与自减(--) 1.3.7 位运算 2. 更多关键字 1. int关键字 int 是一个关键字࿰…...
Java语言编程,通过阿里云mongo数据库监控实现数据库的连接池优化
一、背景 线上程序连接mongos超时,mongo监控显示连接数已使用100%。 java程序报错信息: org.mongodb.driver.connection: Closed connection [connectionId{localValue:1480}] to 192.168.10.16:3717 because there was a socket exception raised by…...
论文阅读--Evidence for the utility of quantum computing before fault tolerance
量子计算有望在某些问题上提供比传统计算更快的速度。然而,实现其全部潜力的最大障碍是这些系统固有的噪声。这一挑战被广泛接受的解决方案是实现容错量子电路,而这超出了当前处理器的能力范围。我们在此报告了在嘈杂的127 量子比特处理器上进行的实验&a…...
Maven的安装——给Idea配置Maven
一、什么是Maven? Maven是一个开源的项目管理工具,它主要用于Java项目的构建、依赖管理和项目生命周期管理。 二、准备环境 maven安装之前,我们要先安装jdk,确保你已经安装了jdk环境。可以通过【win】【r】打开任务管理器,输入…...
【虚拟机】VMWare的CentOS虚拟机断电或强制关机出现问题
VMware 虚拟机因为笔记本突然断电故障了,开机提示“Entering emergency mode. Exit the shell to continue.”,如下图所示: 解决方法:输入命令: xfs_repair -v -L /dev/dm-0 注:报 no such file or direct…...
如何在WPF中嵌入其它程序
在WPF中嵌入其它程序,这里提供两种方案 一、使用WindowsFormHost 使用步骤如下 1、添加WindowsFormsIntegration和System.Windows.Forms引用 2、在界面上放置WindowsFormHost和System.Windows.Forms.Panel 1 <Grid> 2 <WindowsFormsHost> 3…...
集合Queue、Deque、LinkedList、ArrayDeque、PriorityQueue详解
1、 Queue与Deque的区别 在研究java集合源码的时候,发现了一个很少用但是很有趣的点:Queue以及Deque; 平常在写leetcode经常用LinkedList向上转型Deque作为栈或者队列使用,但是一直都不知道Queue的作用,于是就直接官方…...
实战 | C#中使用YoloV8和OpenCvSharp实现目标检测 (步骤 + 源码)
导 读 本文主要介绍在C#中使用YoloV8实现目标检测,并给详细步骤和代码。 详细步骤 【1】环境和依赖项。 需先安装VS2022最新版,.NetFramework8.0,然后新建项目,nuget安装 YoloSharp,YoloSharp介绍: https://github.com/dme-compunet/YoloSharp 最新版6.0.1,本文…...
OpenCV基本图像处理操作(六)——直方图与模版匹配
直方图 cv2.calcHist(images,channels,mask,histSize,ranges) images: 原图像图像格式为 uint8 或 float32。当传入函数时应 用中括号 [] 括来例如[img]channels: 同样用中括号括来它会告函数我们统幅图 像的直方图。如果入图像是灰度图它的值就是 [0]如果是彩色图像 的传入的…...
Hive离线数仓结构分析
Hive离线数仓结构 首先,在数据源部分,包括源业务库、用户日志、爬虫数据和系统日志,这些都是数据的源头。这些数据通过Sqoop、DataX或 Flume 工具进行提取和导入操作。这些工具负责将不同来源的数据传输到基于 Hive 的离线数据仓库中。 在离线…...
《macOS 开发环境配置与应用开发》
一、引言 macOS 作为一款强大而流行的操作系统,为开发者提供了丰富的开发机会和优秀的开发环境。无论是开发原生的 macOS 应用,还是进行跨平台开发,了解和掌握 macOS 开发环境的配置以及应用开发的方法至关重要。本文将详细介绍 macOS 开发环…...
DataGear 5.2.0 发布,数据可视化分析平台
DataGear 企业版 1.3.0 已发布,欢迎体验! http://datagear.tech/pro/ DataGear 5.2.0 发布,图表插件支持定义依赖库、严重 BUG 修复、功能改进、安全增强,具体更新内容如下: 重构:各模块管理功能访问路径…...
Knife4j快速入门
1 概述 Knife4j是一个用于生成和展示API文档的工具,同时它还提供了在线调试的功能,下图是其工作界面。 了解: Knife4j有多个版本,最新版的Knife4j基于开源项目springdoc-openapi,这个开源项目的核心功能就是根据Sprin…...
pcap_set_buffer_size()函数
功能简介 pcap_set_buffer_size()函数主要用于设置数据包捕获的内核缓冲区大小。这个缓冲区是操作系统内核用于临时存储捕获到的数据包的区域。通过调整缓冲区大小,可以在一定程度上优化数据包捕获的性能,特别是在高流量网络环境或者需要长时间捕获数据包…...
Ubuntu24.04——软件包系统已损坏
如果你在使用 Ubuntu 时遇到“软件包系统已损坏”的问题,可以尝试以下步骤来修复它: 更新软件包列表: 打开终端,运行以下命令以更新软件包列表: sudo apt update修复损坏的软件包: 运行以下命令来修复损坏的…...
项目实战:Vue3开发一个购物车
这段HTML代码实现了一个简单的购物车实战小项目的前端页面,结合了Vue.js框架来实现数据响应式和交互逻辑。页面展示了购物车中的商品项,每个商品项有增减数量的按钮,并且能显示商品总数以及目前固定为0元的商品总价和总价计算。 【运用响应式…...
OpenOCD之J-Link下载
1.下载USB Dirver Tool.exe,选择J-Link dirver,替换成WinUSB驱动。(⭐USB Dirver Tool工具可将J-Link从WinUSB驱动恢复为默认驱动⭐) 下载方式 ①官方网址:https://visualgdb.com/UsbDriverTool/ ②笔者的CSDN链接&…...
C++中定义类型名的方法
什么是 C 中的类型别名和 using 声明? 类型别名与using都是为了提高代码的可读性。 有两种方法可以定义类型别名 一种是使用关键字typedef起别名使用别名声明来定义类型的别名,即使用using. typedef 关键字typedef作为声明语句中的基本数据类型的一…...
241124学习日志——[CSDIY] [ByteDance] 后端训练营 [14]
CSDIY:这是一个非科班学生的努力之路,从今天开始这个系列会长期更新,(最好做到日更),我会慢慢把自己目前对CS的努力逐一上传,帮助那些和我一样有着梦想的玩家取得胜利!!&…...
丹摩|丹摩智算平台深度评测
1. 丹摩智算平台介绍 随着人工智能和大数据技术的快速发展,越来越多的智能计算平台涌现,为科研工作者和开发者提供高性能计算资源。丹摩智算平台作为其中的一员,定位于智能计算服务的提供者,支持从数据处理到模型训练的全流程操作…...
VSCode 快捷键
箭头函数 安装VSCODE插件用于在编辑器中生成ES6语法的JavaScript的代码段(支持JavaScript和Typescript)。 安装成功后输入an回车就可以了 (params) > {} 1、显示快捷键列表 快捷键:⌘ K S 可以通过上述按键显示vscode的快捷键列表&am…...
Java基础-Java多线程机制
(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 一、引言 二、多线程的基本概念 1. 线程与进程 2. 多线程与并发 3. 多线程的优势 三、Java多线程的实…...
【创建型设计模式】单例模式
【创建型设计模式】单例模式 这篇博客接下来几篇都将阐述设计模式相关内容。 接下来的顺序大概是:单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。 一、什么是单例模式 单例模式是一种创建型设计模式,它保证一个类仅有一个实例&#…...
SpringBoot集成多个rabbitmq
1、pom文件 <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-amqp --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId><versio…...
JavaScript将至
JS是什么? 是一种运行在客户端(浏览器)的编程语言,实现人机交互效果 作用捏? 网页特效 (监听用户的一些行为让网页作出对应的反馈) 表单验证 (针对表单数据的合法性进行判断) 数据交互 (获取后台的数据, 渲染到前…...
Java中的线程池(如果想知道Java中有关线程池的知识,那么只看这一篇就足够了!)
前言:线程池是 Java 中用于高效管理并发任务的工具,通过复用线程、降低线程创建销毁的开销,提升系统性能与响应速度。它帮助开发者更好地控制线程生命周期和资源消耗,是高并发应用的重要组成部分。 ✨✨✨这里是秋刀鱼不做梦的BLO…...
Java 获取本机 IP 地址的方法
文章目录 一、使用 InetAddress.getLocalHost二、遍历网络接口获取 在 Java 编程中,若有本机的 IP 地址的需求,小编来展示一下方法: 一、使用 InetAddress.getLocalHost 一是最基本的获取本机 IP 地址的方式。 示例代码: impo…...
开源动态表单form-create-designer 扩展个性化配置的最佳实践教程
在开源低代码表单设计器 form-create-designer 的右侧配置面板里,field 映射规则为开发者提供了强大的工具去自定义和增强组件及表单配置的显示方式。通过这些规则,你可以简单而高效地调整配置项的展示,提升用户体验。 源码地址: Github | G…...
c语言数据结构与算法--简单实现线性表(顺序表+链表)的插入与删除
老规矩,点赞评论收藏关注!!! 目录 线性表 其特点是: 算法实现: 运行结果展示 链表 插入元素: 删除元素: 算法实现 运行结果 线性表是由n个数据元素组成的有限序列ÿ…...