Базовый поиск Splunk на панели инструментов и постобработка результатов

У меня есть панель инструментов, которая использует базовый поиск, а также 4 других панели, которые ссылаются на нее и по-разному форматируют результаты в зависимости от диаграммы, которую я хочу использовать.

Когда я запускаю базовый запрос сам по себе, он возвращает данные, как и ожидалось.

Базовый запрос:

index=mail sourcetype=barracuda bcProcess="outbound/smtp" 
    [ search index=mail sourcetype=barracuda 
        [ search index=mail sourcetype=sendmail_syslog msgid="<*@sfdc.net>" 
           | rex field=from "<(?<bcSender>.*)>" 
           | stats count by bcSender 
           | fields bcSender 
           | format 
        ] 
      | stats count by bcMsgId 
      | fields bcMsgId
    ]

На одной панели я показываю одно общее число, отправленное следующим образом:

<search base="main_results">
  <query>
   | stats count(bcMsgId) as total
  </query>
</search>
        

То же самое с другой панелью, которая показывает это ежечасно с использованием линейного графика:

<search base="main_results">
  <query>
   | timechart span=1h count AS "Total Sends"
  </query>
</search>

Обе приведенные выше панели отлично работают при обращении к базовому запросу.


Проблема, с которой я столкнулся, изображена на круговой диаграмме.

<panel>
      <chart>
        <title>Send Action Breakdown</title>
        <search base="main_results">
          <query>| rename bcSendAction as "Send Action" 
| chart count as Total by "Send Action" 
| eval "Send Action"="Send Action"." (".Total.")" 
| replace 1 WITH "Success" , 2 WITH "Block" , 3 WITH "Deferral" IN "Send Action"</query>
        </search>
        <option name="charting.chart">pie</option>
        <option name="charting.drilldown">none</option>
        <option name="height">460</option>
        <option name="refresh.display">progressbar</option>
        <option name="charting.chart.showPercent">true</option>
      </chart>
    </panel>

Когда панель управления пытается загрузить эту панель, она всегда возвращает «Результаты не найдены». Однако, если я скопирую базовый запрос в поиск, а затем вставлю запрос из этой панели прямо под ним, я получу ожидаемые результаты.

введите описание изображения здесь

Вопрос:

Почему эта панель, использующая один и тот же базовый запрос, имеет проблемы с получением данных, если я могу вручную вставить обе части, и она работает нормально?

Обновление для Bounty Clarity: Моя панель управления имеет 4 панели, и 3 из них в значительной степени используют идентичный поисковый запрос, поэтому я пытался настроить базовый поиск, чтобы все они могли ссылаться на него.

Вот мои 4 отдельных поиска для 4 панелей, если это помогает показать, как я пытался разделить их, чтобы моя база работала правильно.

// Total Emails Sent
index=mail sourcetype=barracuda bcProcess="outbound/smtp" 
            [ search index=mail sourcetype=barracuda 
              [ search index=mail sourcetype=sendmail_syslog msgid="<*@sfdc.net>" 
                | rex field=from "<(?<bcSender>.*)>" 
                | stats count as Total by bcSender 
                | fields bcSender 
                | format 
              ] 
              | stats count as Total by bcMsgId 
              | fields bcMsgId, bcSendAction 
            ]
            | stats count(bcMsgId) as total


// Emails per hour
index=mail sourcetype=barracuda bcProcess="outbound/smtp" 
            [ search index=mail sourcetype=barracuda 
              [ search index=mail sourcetype=sendmail_syslog msgid="<*@sfdc.net>" 
                | rex field=from "<(?<bcSender>.*)>" 
                | stats count as Total by bcSender 
                | fields bcSender 
                | format 
              ] 
              | stats count as Total by bcMsgId 
              | fields bcMsgId, bcSendAction 
            ]
            | bin _time as hour span=1h
| stats count as hourcount by hour
| eval hour=strftime(hour,"%H:%M")
| chart sum(hourcount) as count by hour



// Top 10 Senders
index=mail sourcetype=sendmail_syslog msgid="<*@sfdc.net>"         
            | rex field=from "<(?<bcSender>.*)>"          
            | stats count as Total by bcSender
            | rename bcSender as "From Address"
            | sort -Total | head 10



// Action Breakdown
index=mail sourcetype=barracuda bcProcess="outbound/smtp" 
            [ search index=mail sourcetype=barracuda 
              [ search index=mail sourcetype=sendmail_syslog msgid="<*@sfdc.net>" 
                | rex field=from "<(?<bcSender>.*)>" 
                | stats count as Total by bcSender 
                | fields bcSender 
                | format 
              ] 
              | stats count as Total by bcMsgId 
              | fields bcMsgId, bcSendAction 
            ]
          | stats count as Total by bcSendAction
          | rename bcSendAction as Action
          | replace 1 WITH "Success" , 2 WITH "Block" , 3 WITH "Deferral" IN Action
          | eval "Action"=Action." (".Total.")"

person SBB    schedule 16.09.2020    source источник


Ответы (1)


Включите поле bcSendAction, которое вам нужно в круговой диаграмме, в свой базовый | fields оператор. Предположим, что базовый поиск выполняется в режиме FAST. Любые поля, явно не вызванные в базе, не будут доступны для поиска после обработки.

person Scott Ciulei    schedule 13.05.2021