If it's really just emitting a single newline, then that is indeed an
incorrect HTTP response by your third-party vendor and not a problem in
Alertmanager. As far as Alertmanager is concerned, it's simply waiting for
the headers to continue.

On Wed, Feb 3, 2021 at 12:02 AM Christopher Parsons <[email protected]>
wrote:

> Thanks Julius!  Is one newline character ever considered valid? I'm
> wondering if my next steps are to report this as a bug/feature request for
> the AlertManager project to support single newline responses or if I need
> to work with the third party vendor to update how their server is
> responding.  I am pretty sure the service is just using standard Perl
> packages to handle the incoming HTTP messages so I'm not sure why they
> would ignore the 2nd newline character.
>
> On Tuesday, February 2, 2021 at 5:46:05 PM UTC-5 [email protected]
> wrote:
>
>> Yep, exactly, you need two newlines (2 times 0x0d0a) to generate a
>> completely empty line, which HTTP uses to signal that the header section is
>> over.
>>
>> On Tue, Feb 2, 2021 at 3:35 PM Christopher Parsons <[email protected]>
>> wrote:
>>
>>> It appears there's just a single CRLF (0d 0a) after the 200 OK line.
>>> Are you saying there needs to be another one in order for AlertManager to
>>> detect a valid 200 response?
>>>
>>> [image: mon101 response with hex.PNG]
>>>
>>> On Tuesday, February 2, 2021 at 4:25:13 AM UTC-5 [email protected]
>>> wrote:
>>>
>>>> Hi Christopher,
>>>>
>>>> It's not clear from your Wireshark stream, maybe show the data as hex
>>>> instead: does the problematic server insert an empty line after the
>>>> "HTTP/1.1 200 OK" line and then terminate the connection? So a CRLF after
>>>> the 200 line and another CRLF for the empty line. This is required for the
>>>> response to be read as a valid HTTP response (the body is optional).
>>>>
>>>> Julius
>>>>
>>>> On Tue, Feb 2, 2021 at 12:45 AM Christopher Parsons <
>>>> [email protected]> wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>> I have a third party tool that is listening for incoming HTTP messages
>>>>> on a specific port.  When we point AlertManager to this endpoint,
>>>>> notifications are delivered and consumed by the third party tool and
>>>>> inserted into our monitoring database successfully.  However, AlertManager
>>>>> continuously retries the notification and slowly backs off on the retries.
>>>>>
>>>>> In order to try to figure out what's going on, we set up packet
>>>>> captures on AlertManager server and one on the endpoint server.  As a
>>>>> control group, we also configured a simple node.js server which responds
>>>>> back with a 200.  The only difference, as far as I can tell, from the TCP
>>>>> streams in Wireshark is the response headers.  The server forcing
>>>>> AlertManager to continuously retry replies with a simple "*HTTP/1.1
>>>>> 200 OK*".  However, the node.js control group which does not force
>>>>> AlertManager to send subsequent replies is responding with something 
>>>>> like...
>>>>>
>>>>> *HTTP/1.1 200 OK*
>>>>>
>>>>> *Date: Mon, 01 Feb 2021 22:56:09 GMT*
>>>>>
>>>>> *Connection: keep-alive*
>>>>>
>>>>> *Transfer-Encoding: chunked*
>>>>>
>>>>> Does the go-lang web server expect more than a simple "HTTP/1.1 200
>>>>> OK" as a response?  The third party tool is not open source but I may be
>>>>> able to get them to issue a future update if this is considered unexpected
>>>>> behavior.  Any suggestions or workarounds would be greatly appreciated.
>>>>> I've also attached a couple of screenshots from the Wireshark TCP stream
>>>>> traces for reference.
>>>>>
>>>>> Normal behavior:
>>>>>
>>>>> [image: logserver normal behavior.PNG]
>>>>>
>>>>> Repeat notification behavior:
>>>>> [image: mon101 repeat behavior.PNG]
>>>>>
>>>>> Please let me know if there are any other details I can provide!
>>>>>
>>>>> Thanks,
>>>>> Chris
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Prometheus Users" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/d/msgid/prometheus-users/014b62ad-72bb-41af-b794-f3bbe61bf705n%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/prometheus-users/014b62ad-72bb-41af-b794-f3bbe61bf705n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>>
>>>>
>>>> --
>>>> Julius Volz
>>>> PromLabs - promlabs.com
>>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Prometheus Users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>>
>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/prometheus-users/83566c90-0119-4e7d-97fb-23d30c21299cn%40googlegroups.com
>>> <https://groups.google.com/d/msgid/prometheus-users/83566c90-0119-4e7d-97fb-23d30c21299cn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>
>>
>> --
>> Julius Volz
>> PromLabs - promlabs.com
>>
> --
> You received this message because you are subscribed to the Google Groups
> "Prometheus Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/prometheus-users/f3159722-8d91-4196-8888-9ab180da31aan%40googlegroups.com
> <https://groups.google.com/d/msgid/prometheus-users/f3159722-8d91-4196-8888-9ab180da31aan%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>


-- 
Julius Volz
PromLabs - promlabs.com

-- 
You received this message because you are subscribed to the Google Groups 
"Prometheus Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/prometheus-users/CAObpH5xOA8s9DhaO2dT71tTqoL2GEKvoEks9oYZZn-gG88Acpw%40mail.gmail.com.

Reply via email to