Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New component: HTTP Check #10607

Closed
philipcwhite opened this issue Jun 6, 2022 · 4 comments · Fixed by #14191
Closed

New component: HTTP Check #10607

philipcwhite opened this issue Jun 6, 2022 · 4 comments · Fixed by #14191
Assignees
Labels
Accepted Component New component has been sponsored

Comments

@philipcwhite
Copy link

The purpose and use-cases of the new component

Purpose: To monitor the availability and performance of HTTP endpoints.
Use case: There are two main ways of monitoring if websites are up and running. Full synthetics (i.e. Selenium) and simple HTTP checks. These are some of the best leading indicators of application availability, and sadly, both are missing from OTel. This proposal is for the latter. This would look to perform simple HTTP checks. Simple checks are beneficial in that they require less overhead than full transactions and can typically be run more frequently. This benefits observability by detecting issues faster through increased frequency.

Example configuration for the component

receivers:
  http_checks:
    -name: Test
      url:  http://localhost:5000
      verify:
        -text: "Hello World"

Telemetry data types supported

This is a metric receiver and would collect the following metrics:
Gauges
http_availability: 1/0 (up/down)
http_response_time: (ms)
http_verification: 1/0 (true/false)

Counters
http_response_ok: 2XX codes
http_response_redirect: 3XX codes
http_response_not_found: 4XX codes
http_response_error: 5XX codes

Sponsor (Optional)

@codeboten codeboten added the Sponsor Needed New component seeking sponsor label Jun 6, 2022
@codeboten
Copy link
Contributor

Would be happy to sponsor this. Couple of questions:

  1. Is it worth including a method for the check?
  2. Does make sense to make it possible to check multiple urls with the same receiver?
  3. The content check may be best suited for a regex, thinking of the case where someone may need to check a status page that includes something like a date.

@codeboten codeboten added Accepted Component New component has been sponsored and removed Sponsor Needed New component seeking sponsor labels Jun 8, 2022
@philipcwhite
Copy link
Author

Thank you.

  1. Possibly. I am new to Go and will most likely need assistance with this. I'm a Python developer so I have some learning to do. I am going to try write a stand alone app for this and request assistance integrating it correctly. I've done some testing with builder and was able to successfully able to get a package built so fingers crossed.
  2. Yes. I figured the array in yaml (-name)would be for multiple urls.
  3. I agree, regex would be good for finding text.

@codeboten
Copy link
Contributor

@philipcwhite is this component still something you're actively working on? if not i'd be happy to take it over.

@philipcwhite
Copy link
Author

Alex, I would appreciate it if you could take this over. Thank you.

@codeboten codeboten self-assigned this Sep 19, 2022
codeboten referenced this issue in codeboten/opentelemetry-collector-contrib Oct 14, 2022
The HTTP Check Receiver can be used for synthethic checks against HTTP endpoints. This receiver will make a request to the specified `endpoint` using the configured `method`.

Fixes #10607
codeboten pushed a commit that referenced this issue Oct 18, 2022
The HTTP Check Receiver can be used for synthethic checks against HTTP endpoints. This receiver will make a request to the specified `endpoint` using the configured `method`.

Fixes #10607
shalper2 pushed a commit to shalper2/opentelemetry-collector-contrib that referenced this issue Dec 6, 2022
The HTTP Check Receiver can be used for synthethic checks against HTTP endpoints. This receiver will make a request to the specified `endpoint` using the configured `method`.

Fixes open-telemetry#10607
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Accepted Component New component has been sponsored
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants