You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Kusto Query计算方法执行起止时间差值的技术问询

计算方法执行时长差值的解决方案

核心逻辑是:匹配同一方法的「Start」进入记录与「End」退出记录,计算两者时间戳的差值,得到方法执行时长。以下是两种常见场景的实现方式:

场景1:数据库数据表(SQL实现)

假设数据表结构示例:

MethodNameMessageTypeTimestamp
ABCStart2023-12-06T08:08:52.8576365Z
ABCEnd2023-12-06T08:09:52.8576365Z
XYZStart2023-12-06T08:10:00.123456Z
XYZEnd2023-12-06T08:10:30.123456Z

MySQL 实现语句

SELECT
    t_start.MethodName,
    TIMESTAMPDIFF(MICROSECOND, t_start.Timestamp, t_end.Timestamp) / 1000000 AS ExecutionDuration_Seconds
FROM
    your_table t_start
JOIN
    your_table t_end ON t_start.MethodName = t_end.MethodName
WHERE
    t_start.MessageType = 'Start'
    AND t_end.MessageType = 'End';
  • 注:将your_table替换为实际表名;若需毫秒级时长,将结果除以1000即可。

PostgreSQL 实现语句

SELECT
    t_start.MethodName,
    EXTRACT(EPOCH FROM (t_end.Timestamp - t_start.Timestamp)) AS ExecutionDuration_Seconds
FROM
    your_table t_start
JOIN
    your_table t_end ON t_start.MethodName = t_end.MethodName
WHERE
    t_start.MessageType = 'Start'
    AND t_end.MessageType = 'End';

场景2:本地数据表(Python pandas 实现)

import pandas as pd

# 读取数据表(CSV/Excel均可,这里以CSV为例)
df = pd.read_csv('your_data.csv')

# 解析时间戳列为datetime类型
df['Timestamp'] = pd.to_datetime(df['Timestamp'])

# 拆分Start和End数据集
start_records = df[df['MessageType'] == 'Start'].rename(columns={'Timestamp': 'Start_Time'})[['MethodName', 'Start_Time']]
end_records = df[df['MessageType'] == 'End'].rename(columns={'Timestamp': 'End_Time'})[['MethodName', 'End_Time']]

# 匹配同一方法的起止记录并计算时长
result = pd.merge(start_records, end_records, on='MethodName')
result['ExecutionDuration_Seconds'] = (result['End_Time'] - result['Start_Time']).dt.total_seconds()

# 输出结果
print(result)
  • 注:若需毫秒级时长,可将total_seconds()替换为(result['End_Time'] - result['Start_Time']).dt.total_seconds() * 1000。

关键注意点

  • 确保每个方法的「Start」与「End」记录一一对应,无缺失或重复;若存在重复记录,需按时间顺序匹配最近的起止对。
  • 保证时间戳格式统一,确保能被正确解析为时间类型。

内容的提问来源于stack exchange,提问作者Kunal singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 12:53:10