function traceFilters()

in src/hooks/useAssociateProcessor.ts [65:117]


  function traceFilters(currentParams: Nullable<EventParams>) {
    const appStore = useAppStoreWithOut();

    if (!currentParams) {
      return;
    }
    const start = appStore.intervalUnix[currentParams.dataIndex];
    const { step } = appStore.durationRow;
    let duration = undefined;

    if (start) {
      const end = start;
      duration = {
        start: dateFormatStep(getLocalTime(appStore.utc, new Date(start)), step, true),
        end: dateFormatStep(getLocalTime(appStore.utc, new Date(end)), step, true),
        step,
      };
    }
    const relatedTrace = props.relatedTrace || {};
    const status = relatedTrace.status;
    const queryOrder = relatedTrace.queryOrder;
    const latency = relatedTrace.latency;
    const series = props.option.series || [];
    const item: Indexable = {
      duration,
      queryOrder,
      status,
    };
    if (latency) {
      const latencyList = series.map((d: { name: string; data: number[][] }, index: number) => {
        const data = [
          d.data[currentParams.dataIndex][1],
          series[index + 1] ? series[index + 1].data[currentParams.dataIndex][1] : Infinity,
        ];
        return {
          label: d.name + "--" + (series[index + 1] ? series[index + 1].name : "Infinity"),
          value: String(index),
          data,
        };
      });
      item.latency = latencyList;
    }
    const value = series.map((d: { name: string; data: number[][] }, index: number) => {
      return {
        label: d.name,
        value: String(index),
        data: d.data[currentParams.dataIndex][1],
        date: d.data[currentParams.dataIndex][0],
      };
    });
    item.metricValue = value;
    return item;
  }