<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: HEC HttpInputAckService pending queries in Getting Data In</title>
    <link>https://community.splunk.com/t5/Getting-Data-In/HEC-HttpInputAckService-pending-queries/m-p/673655#M112795</link>
    <description>&lt;P&gt;The documentation does not say step 3 is optional.&amp;nbsp; That you can see your data confirms it is present, but that is not the same thing as fetching the ACK.&lt;/P&gt;&lt;P&gt;Restarting the service clears the pending ACKs and re-enables reception of data.&amp;nbsp; Fetching the ACKs will also re-enable reception without a restart.&lt;/P&gt;&lt;P&gt;If the client cannot fetch ACKs then I suggest turning off HEC ACK.&lt;/P&gt;</description>
    <pubDate>Tue, 09 Jan 2024 15:11:27 GMT</pubDate>
    <dc:creator>richgalloway</dc:creator>
    <dc:date>2024-01-09T15:11:27Z</dc:date>
    <item>
      <title>HEC HttpInputAckService pending queries</title>
      <link>https://community.splunk.com/t5/Getting-Data-In/HEC-HttpInputAckService-pending-queries/m-p/673542#M112785</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;We set HEC http input for several flows of data and related tokens, and we added ACK feature to this configuration. (following &lt;A href="https://docs.splunk.com/Documentation/Splunk/9.1.2/Data/AboutHECIDXAck" target="_blank" rel="noopener"&gt;https://docs.splunk.com/Documentation/Splunk/9.1.2/Data/AboutHECIDXAck&lt;/A&gt;)&lt;/P&gt;
&lt;P&gt;We work with a distributed infra, 1 Search Head, two indexers (no cluster)&lt;/P&gt;
&lt;P&gt;All was Ok with HEC but after some time we got our first error event :&lt;/P&gt;
&lt;P&gt;ERROR HttpInputDataHandler [2576842 HttpDedicatedIoThread-0] - Failed processing http input, token name=XXXX [...] reply=9, events_processed=0&lt;BR /&gt;INFO HttpInputDataHandler [2576844 HttpDedicatedIoThread-2] - HttpInputAckService not in healthy state. The maximum number of ACKed requests pending query has been reached.&lt;/P&gt;
&lt;P&gt;Server busy error (reply=9) leads to unavailability of HEC, but only for the token(s) where maximum number of ACKed requests pending query have been reached. Restarting the indexer is enough to get rid of the problem, but after many logs have been lost.&lt;/P&gt;
&lt;P&gt;We did some search and tried to customize some settings, but we only succeeded in delaying the 'server busy' problem (1 week to 1 month).&lt;/P&gt;
&lt;P&gt;Has anyone experienced the same problem ? How can we avoid increasing those pending query counter ?&lt;/P&gt;
&lt;P&gt;Thanks a lot for any help.&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;etc/system/local/limits.conf
[http_input]
# The max number of ACK channels.
max_number_of_ack_channel = 1000000
# The max number of acked requests pending query.
max_number_of_acked_requests_pending_query = 10000000
# The max number of acked requests pending query per ACK channel.
max_number_of_acked_requests_pending_query_per_ack_channel = 4000000

etc/system/local/server.conf
[queue=parsingQueue]
maxSize=10MB

maxEventSize = 20MB
maxIdleTime = 400
channel_cookie = AppGwAffinity (this one because we are using load balancer, so cookie is also set on LB)&lt;/LI-CODE&gt;</description>
      <pubDate>Mon, 08 Jan 2024 16:54:22 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Getting-Data-In/HEC-HttpInputAckService-pending-queries/m-p/673542#M112785</guid>
      <dc:creator>beneteos</dc:creator>
      <dc:date>2024-01-08T16:54:22Z</dc:date>
    </item>
    <item>
      <title>Re: HEC HttpInputAckService pending queries</title>
      <link>https://community.splunk.com/t5/Getting-Data-In/HEC-HttpInputAckService-pending-queries/m-p/673543#M112786</link>
      <description>&lt;P&gt;HEC ACKs require the client to specifically ask for the status.&amp;nbsp; Does your HEC client do that?&amp;nbsp; It can't just throw events at Splunk and hope to get an ACK.&amp;nbsp; The client has to say "did you index it, yet"?&amp;nbsp; See &lt;A href="https://docs.splunk.com/Documentation/Splunk/9.1.2/Data/AboutHECIDXAck#Query_for_indexing_status" target="_blank"&gt;https://docs.splunk.com/Documentation/Splunk/9.1.2/Data/AboutHECIDXAck#Query_for_indexing_status&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jan 2024 15:39:38 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Getting-Data-In/HEC-HttpInputAckService-pending-queries/m-p/673543#M112786</guid>
      <dc:creator>richgalloway</dc:creator>
      <dc:date>2024-01-08T15:39:38Z</dc:date>
    </item>
    <item>
      <title>Re: HEC HttpInputAckService pending queries</title>
      <link>https://community.splunk.com/t5/Getting-Data-In/HEC-HttpInputAckService-pending-queries/m-p/673632#M112791</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;Thanks for your answer but I don't have the same understanding of Splunk documentation as you.&lt;BR /&gt;If you were right, HEC service would be down a few hours after startup, or less.&lt;/P&gt;&lt;P&gt;As explained in Splunk documentation (see the graph), HEC responds with an ACK for each event thrown, but you can send a request for a particular event to verify the status : "Each time a client sends a request to the HEC endpoint using a token with indexer acknowledgment enabled (1), HEC returns an acknowledgment identifier to the client (2)."&lt;BR /&gt;&lt;A href="https://docs.splunk.com/Documentation/Splunk/9.1.2/Data/AboutHECIDXAck#Query_for_indexing_status" target="_blank"&gt;https://docs.splunk.com/Documentation/Splunk/9.1.2/Data/AboutHECIDXAck#Query_for_indexing_status&lt;/A&gt;&lt;BR /&gt;1. Client send HEC request with event data&lt;BR /&gt;2. HEC acks the request once event is indexed&lt;/P&gt;&lt;P&gt;HEC clients don't need to ask for status for events to get indexed well (millions each day), but after a while, the indexers become busy due to the maximum number of pending requests. I already increased this value so now I need to understand why this pending queries&lt;/P&gt;&lt;P&gt;So my problem is something with pending requests and why they are increasing like that. I don't see any errors with the metrics, but they don't seem to be cumulative (Because Splunk Enterprise deletes status information after clients retrieve it) :&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="beneteos_0-1704801192512.png" style="width: 400px;"&gt;&lt;img src="https://community.splunk.com/t5/image/serverpage/image-id/28802iE45A458E952BCE90/image-size/medium?v=v2&amp;amp;px=400" role="button" title="beneteos_0-1704801192512.png" alt="beneteos_0-1704801192512.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;I cannot control HEC client behavior beyond basic settings (for information, this is Akamai DataStream).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Jan 2024 12:24:38 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Getting-Data-In/HEC-HttpInputAckService-pending-queries/m-p/673632#M112791</guid>
      <dc:creator>beneteos</dc:creator>
      <dc:date>2024-01-09T12:24:38Z</dc:date>
    </item>
    <item>
      <title>Re: HEC HttpInputAckService pending queries</title>
      <link>https://community.splunk.com/t5/Getting-Data-In/HEC-HttpInputAckService-pending-queries/m-p/673637#M112792</link>
      <description>&lt;P&gt;The steps seem pretty clear in the docs.&lt;/P&gt;&lt;P&gt;1) Send data to HEC&lt;/P&gt;&lt;P&gt;2) Get an ACK *ID* in response&lt;/P&gt;&lt;P&gt;3) Use the ACK ID to confirm the data has been written&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;To verify that the indexer has indexed the event(s) contained in the request, query the [https://&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;/services/collector/ack] endpoint&lt;/LI-CODE&gt;&lt;P&gt;Indexers get pending queries because the client has not closed them by requesting the status.&lt;/P&gt;</description>
      <pubDate>Tue, 09 Jan 2024 13:31:10 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Getting-Data-In/HEC-HttpInputAckService-pending-queries/m-p/673637#M112792</guid>
      <dc:creator>richgalloway</dc:creator>
      <dc:date>2024-01-09T13:31:10Z</dc:date>
    </item>
    <item>
      <title>Re: HEC HttpInputAckService pending queries</title>
      <link>https://community.splunk.com/t5/Getting-Data-In/HEC-HttpInputAckService-pending-queries/m-p/673653#M112794</link>
      <description>&lt;P&gt;But step 3 you mentioned is optional, in the sense that it's not required to request statuses for events to be indexed (I can verify my data is present, and events logged). So I didn't expect this behavior.&lt;/P&gt;&lt;P&gt;After this max number of pending events reached, channel for the related token go on busy status, and leads to loss of logs until I restart service.&lt;/P&gt;&lt;P&gt;I tried to increase &lt;EM&gt;max_number_of_acked_requests_pending_query, &lt;/EM&gt;but it will only allow me to postpone the deadline, and set a huge value could perhaps also have negative impact on servers health.&lt;/P&gt;&lt;P&gt;As I cannot control anything on client except channel header and authorization header, and as client doesn't seem do status&amp;nbsp;requests (firewall logs), I will try to update &lt;EM&gt;maxIdleTime&lt;/EM&gt; under 60, as client send data every 60 seconds.&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Jan 2024 14:53:41 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Getting-Data-In/HEC-HttpInputAckService-pending-queries/m-p/673653#M112794</guid>
      <dc:creator>beneteos</dc:creator>
      <dc:date>2024-01-09T14:53:41Z</dc:date>
    </item>
    <item>
      <title>Re: HEC HttpInputAckService pending queries</title>
      <link>https://community.splunk.com/t5/Getting-Data-In/HEC-HttpInputAckService-pending-queries/m-p/673655#M112795</link>
      <description>&lt;P&gt;The documentation does not say step 3 is optional.&amp;nbsp; That you can see your data confirms it is present, but that is not the same thing as fetching the ACK.&lt;/P&gt;&lt;P&gt;Restarting the service clears the pending ACKs and re-enables reception of data.&amp;nbsp; Fetching the ACKs will also re-enable reception without a restart.&lt;/P&gt;&lt;P&gt;If the client cannot fetch ACKs then I suggest turning off HEC ACK.&lt;/P&gt;</description>
      <pubDate>Tue, 09 Jan 2024 15:11:27 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Getting-Data-In/HEC-HttpInputAckService-pending-queries/m-p/673655#M112795</guid>
      <dc:creator>richgalloway</dc:creator>
      <dc:date>2024-01-09T15:11:27Z</dc:date>
    </item>
  </channel>
</rss>

