Skip to content

Conversation

@ferruzzi
Copy link
Contributor

@ferruzzi ferruzzi commented Feb 9, 2023

Running breeze start-airflow --integration statsd will launch Breeze along with docker containers for statsd, Prometheus, and Grafana. This allows us to test Airflow's statsd metrics emitting.

The general workflow here is that Breeze/Airflow will push metrics to statsd. Prometheus pulls from stats, and Grafana pulls from Prometheus. I found a lovely diagram and a pretty good explanation here which I used as the basis for this change.

image

  • Includes config files which are mounted into the Prometheus and Grafana containers in order to configure the ports and connections between the services/containers, and populates a default dashboard in Grafana.
  • Updates the CLI help menus
  • Grafana and Prometheus config files do not match our chosen JSON schema, so they are added as exemptions in the json linter

I've left a few notes and questions in the review

cc @o-nikolas @vincbeck @syedahsn @vandonr-amz
cc @Taragolis - Since you helped with the research, you might want to have a look.

Copy link
Member

@potiuk potiuk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice one. Love it :)

@ferruzzi
Copy link
Contributor Author

ferruzzi commented Feb 9, 2023

Failing test is

   tests/models/test_xcom.py .....[2023-02-09T21:36:22.304+0000] {xcom.py:632} ERROR - Object of type PickleRce is not JSON serializable. If you are using pickle instead of JSON for XCom, then you need to enable pickle support for XCom in your airflow config or make sure to decorate your object with attr.

Copy link
Contributor

@o-nikolas o-nikolas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, love that this has finally come together after the past couple weeks! 🚀

@Taragolis
Copy link
Contributor

cc @Taragolis - Since you helped with the research, you might want to have a look.

Ohhhh, I've just sent couple links which I personally use before

@ferruzzi ferruzzi force-pushed the ferruzzi/otel/breeze-statsd-integration branch from 1574bfd to fbbe28f Compare February 13, 2023 18:32
@o-nikolas o-nikolas merged commit 0f98bdd into apache:main Feb 13, 2023
@pierrejeambrun
Copy link
Member

pierrejeambrun commented Feb 13, 2023

I am experiencing CI failures on integration tests (eg #29513). That looks related to this PR (integration-statsd.yaml not valid). Any idea ?
https://github.com/apache/airflow/actions/runs/4168124827/jobs/7214629831

@potiuk
Copy link
Member

potiuk commented Feb 13, 2023

The root cause is that for commiters on self-hosted runners "all" is used to run tests and in #29513 each integration was run separately in order to accomodate smaller memory on public runners.

Let me see if I can fix it quickly.

@potiuk
Copy link
Member

potiuk commented Feb 13, 2023

Fix is coming. It was a mistake in the original implementation @ferruzzi that your change revealed.

potiuk added a commit to potiuk/airflow that referenced this pull request Feb 13, 2023
The change apache#29449 made a distinction between "all" and "available"
tests and it turned out that "All" test type uses "available" tests.
The name "all" is actually wrong now. It should be renamed to be
"all-with-tests" or similar, but this should be done in a separate PR
potiuk added a commit that referenced this pull request Feb 13, 2023
The change #29449 made a distinction between "all" and "available"
tests and it turned out that "All" test type uses "available" tests.
The name "all" is actually wrong now. It should be renamed to be
"all-with-tests" or similar, but this should be done in a separate PR
potiuk added a commit to potiuk/airflow that referenced this pull request Feb 16, 2023
The "all" alias outgrew original meaning with adding statsd integration
in apache#29449 which resulted in a problem fixed by apache#29517. The "all" tests
as result was not "all" but "all that could be tested".

This PR adds "all-testable" alias which as opposed to "all" does not
contain "statsd" - it also renames some of the vars/arrays to reflect
it.7
potiuk added a commit that referenced this pull request Feb 17, 2023
The "all" alias outgrew original meaning with adding statsd integration
in #29449 which resulted in a problem fixed by #29517. The "all" tests
as result was not "all" but "all that could be tested".

This PR adds "all-testable" alias which as opposed to "all" does not
contain "statsd" - it also renames some of the vars/arrays to reflect
it.7
ephraimbuddy pushed a commit that referenced this pull request Mar 8, 2023
The change #29449 made a distinction between "all" and "available"
tests and it turned out that "All" test type uses "available" tests.
The name "all" is actually wrong now. It should be renamed to be
"all-with-tests" or similar, but this should be done in a separate PR

(cherry picked from commit 72c3817)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants