Skip to content
This repository has been archived by the owner on Feb 22, 2023. It is now read-only.

Extract Prometheus module #2109

Merged
merged 2 commits into from
Feb 10, 2023
Merged

Extract Prometheus module #2109

merged 2 commits into from
Feb 10, 2023

Conversation

obulat
Copy link
Contributor

@obulat obulat commented Jan 31, 2023

Description

This PR is a suggested implementation of extracting the Prometheus setup from nuxt.config into a separate Nuxt module. I think it will be easier to have Prometheus set up as a separate module when moving from Nuxt 2 to Nuxt 3 because it will not affect the nuxt.config changes anymore, and typing the modules should become easier with Nuxt3.

@github-actions
Copy link

github-actions bot commented Jan 31, 2023

Storybook and Tailwind configuration previews: Ready

Storybook: https://wordpress.github.io/openverse-frontend/_preview/2109
Tailwind: https://wordpress.github.io/openverse-frontend/_preview/2109/tailwind

Please note that GitHub pages takes a little time to deploy newly pushed code, if the links above don't work or you see old versions, wait 5 minutes and try again.

You can check the GitHub pages deployment action list to see the current status of the deployments.

@openverse-bot openverse-bot added the 🚦 status: awaiting triage Has not been triaged & therefore, not ready for work label Jan 31, 2023
@obulat obulat added 🟩 priority: low Low priority and doesn't need to be rushed 💻 aspect: code Concerns the software code in the repository 🧰 goal: internal improvement Improvement that benefits maintainers, not users and removed 🚦 status: awaiting triage Has not been triaged & therefore, not ready for work labels Jan 31, 2023
@github-actions
Copy link

github-actions bot commented Jan 31, 2023

Size Change: -1.56 kB (0%)

Total Size: 902 kB

Filename Size Change
./.nuxt/dist/client/220.js 0 B -272 B (removed) 🏆
./.nuxt/dist/client/220.modern.js 0 B -276 B (removed) 🏆
./.nuxt/dist/client/221.js 0 B -1.85 kB (removed) 🏆
./.nuxt/dist/client/app.js 149 kB -747 B (0%)
./.nuxt/dist/client/app.modern.js 122 kB -772 B (-1%)
./.nuxt/dist/client/runtime.js 2.63 kB -23 B (-1%)
./.nuxt/dist/client/runtime.modern.js 2.63 kB -23 B (-1%)
./.nuxt/dist/client/214.js 272 B +272 B (new file) 🆕
./.nuxt/dist/client/214.modern.js 276 B +276 B (new file) 🆕
./.nuxt/dist/client/215.js 1.85 kB +1.85 kB (new file) 🆕
ℹ️ View Unchanged
Filename Size Change
./.nuxt/dist/client/commons/app.js 87.7 kB 0 B
./.nuxt/dist/client/commons/app.modern.js 78.2 kB 0 B
./.nuxt/dist/client/components/loading-icon.js 748 B 0 B
./.nuxt/dist/client/components/loading-icon.modern.js 749 B 0 B
./.nuxt/dist/client/components/table-sort-icon.js 508 B 0 B
./.nuxt/dist/client/components/table-sort-icon.modern.js 513 B 0 B
./.nuxt/dist/client/components/v-all-results-grid.js 7.54 kB 0 B
./.nuxt/dist/client/components/v-all-results-grid.modern.js 5.05 kB 0 B
./.nuxt/dist/client/components/v-audio-cell.js 384 B 0 B
./.nuxt/dist/client/components/v-audio-cell.modern.js 393 B 0 B
./.nuxt/dist/client/components/v-audio-details.js 2.54 kB 0 B
./.nuxt/dist/client/components/v-audio-details.modern.js 1.79 kB 0 B
./.nuxt/dist/client/components/v-audio-track-skeleton.js 1.01 kB 0 B
./.nuxt/dist/client/components/v-audio-track-skeleton.modern.js 1.02 kB 0 B
./.nuxt/dist/client/components/v-audio-track.js 5.27 kB 0 B
./.nuxt/dist/client/components/v-audio-track.modern.js 5.22 kB 0 B
./.nuxt/dist/client/components/v-back-to-search-results-link.js 538 B 0 B
./.nuxt/dist/client/components/v-back-to-search-results-link.modern.js 543 B 0 B
./.nuxt/dist/client/components/v-bone.js 685 B 0 B
./.nuxt/dist/client/components/v-bone.modern.js 689 B 0 B
./.nuxt/dist/client/components/v-box-layout.js 1.23 kB 0 B
./.nuxt/dist/client/components/v-box-layout.modern.js 1.23 kB 0 B
./.nuxt/dist/client/components/v-content-link.js 1.11 kB 0 B
./.nuxt/dist/client/components/v-content-link.modern.js 1.09 kB 0 B
./.nuxt/dist/client/components/v-content-page.js 466 B 0 B
./.nuxt/dist/client/components/v-content-page.modern.js 471 B 0 B
./.nuxt/dist/client/components/v-content-report-button.js 774 B 0 B
./.nuxt/dist/client/components/v-content-report-button.modern.js 781 B 0 B
./.nuxt/dist/client/components/v-content-report-form.js 6.1 kB 0 B
./.nuxt/dist/client/components/v-content-report-form.modern.js 3.58 kB 0 B
./.nuxt/dist/client/components/v-content-report-popover.js 1.23 kB 0 B
./.nuxt/dist/client/components/v-content-report-popover.modern.js 4.23 kB 0 B
./.nuxt/dist/client/components/v-copy-button.js 3.99 kB 0 B
./.nuxt/dist/client/components/v-copy-button.modern.js 3.99 kB 0 B
./.nuxt/dist/client/components/v-copy-license.js 1 kB 0 B
./.nuxt/dist/client/components/v-copy-license.modern.js 1 kB 0 B
./.nuxt/dist/client/components/v-copy-license/components/v-error-image/components/v-media-reuse/components/v-search-grid/d219393b.js 9.88 kB 0 B
./.nuxt/dist/client/components/v-copy-license/components/v-error-image/components/v-media-reuse/components/v-search-grid/d219393b.modern.js 9.85 kB 0 B
./.nuxt/dist/client/components/v-dmca-notice.js 744 B 0 B
./.nuxt/dist/client/components/v-dmca-notice.modern.js 751 B 0 B
./.nuxt/dist/client/components/v-error-image.js 1.69 kB 0 B
./.nuxt/dist/client/components/v-error-image.modern.js 1.68 kB 0 B
./.nuxt/dist/client/components/v-error-section.js 373 B 0 B
./.nuxt/dist/client/components/v-error-section.modern.js 376 B 0 B
./.nuxt/dist/client/components/v-external-search-form.js 2.06 kB 0 B
./.nuxt/dist/client/components/v-external-search-form.modern.js 2.05 kB 0 B
./.nuxt/dist/client/components/v-external-source-list.js 901 B 0 B
./.nuxt/dist/client/components/v-external-source-list.modern.js 899 B 0 B
./.nuxt/dist/client/components/v-full-layout.js 1.59 kB 0 B
./.nuxt/dist/client/components/v-full-layout.modern.js 1.59 kB 0 B
./.nuxt/dist/client/components/v-grid-skeleton.js 1.62 kB 0 B
./.nuxt/dist/client/components/v-grid-skeleton.modern.js 1.62 kB 0 B
./.nuxt/dist/client/components/v-home-gallery.js 4.8 kB 0 B
./.nuxt/dist/client/components/v-home-gallery.modern.js 4.77 kB 0 B
./.nuxt/dist/client/components/v-homepage-content.js 1.72 kB 0 B
./.nuxt/dist/client/components/v-homepage-content.modern.js 1.69 kB 0 B
./.nuxt/dist/client/components/v-image-carousel.js 4.77 kB 0 B
./.nuxt/dist/client/components/v-image-carousel.modern.js 4.73 kB 0 B
./.nuxt/dist/client/components/v-image-cell-square.js 1.02 kB 0 B
./.nuxt/dist/client/components/v-image-cell-square.modern.js 1.02 kB 0 B
./.nuxt/dist/client/components/v-image-cell.js 1.45 kB 0 B
./.nuxt/dist/client/components/v-image-cell.modern.js 1.44 kB 0 B
./.nuxt/dist/client/components/v-image-details.js 2.15 kB 0 B
./.nuxt/dist/client/components/v-image-details.modern.js 1.42 kB 0 B
./.nuxt/dist/client/components/v-image-grid.js 4.93 kB 0 B
./.nuxt/dist/client/components/v-image-grid.modern.js 2.47 kB 0 B
./.nuxt/dist/client/components/v-license-tab-panel.js 521 B 0 B
./.nuxt/dist/client/components/v-license-tab-panel.modern.js 525 B 0 B
./.nuxt/dist/client/components/v-load-more.js 3.16 kB 0 B
./.nuxt/dist/client/components/v-load-more.modern.js 684 B 0 B
./.nuxt/dist/client/components/v-media-license.js 819 B 0 B
./.nuxt/dist/client/components/v-media-license.modern.js 827 B 0 B
./.nuxt/dist/client/components/v-media-reuse.js 1.62 kB 0 B
./.nuxt/dist/client/components/v-media-reuse.modern.js 1.61 kB 0 B
./.nuxt/dist/client/components/v-media-tag.js 428 B 0 B
./.nuxt/dist/client/components/v-media-tag.modern.js 434 B 0 B
./.nuxt/dist/client/components/v-no-results.js 752 B 0 B
./.nuxt/dist/client/components/v-no-results.modern.js 751 B 0 B
./.nuxt/dist/client/components/v-old-homepage-content.js 1.88 kB 0 B
./.nuxt/dist/client/components/v-old-homepage-content.modern.js 1.85 kB 0 B
./.nuxt/dist/client/components/v-radio.js 1.51 kB 0 B
./.nuxt/dist/client/components/v-radio.modern.js 1.47 kB 0 B
./.nuxt/dist/client/components/v-related-audio.js 1.25 kB 0 B
./.nuxt/dist/client/components/v-related-audio.modern.js 1.25 kB 0 B
./.nuxt/dist/client/components/v-related-images.js 1.05 kB 0 B
./.nuxt/dist/client/components/v-related-images.modern.js 3.03 kB 0 B
./.nuxt/dist/client/components/v-report-desc-form.js 965 B 0 B
./.nuxt/dist/client/components/v-report-desc-form.modern.js 968 B 0 B
./.nuxt/dist/client/components/v-row-layout.js 1.7 kB 0 B
./.nuxt/dist/client/components/v-row-layout.modern.js 1.71 kB 0 B
./.nuxt/dist/client/components/v-scroll-button.js 813 B 0 B
./.nuxt/dist/client/components/v-scroll-button.modern.js 819 B 0 B
./.nuxt/dist/client/components/v-search-grid.js 5.87 kB 0 B
./.nuxt/dist/client/components/v-search-grid.modern.js 5.8 kB 0 B
./.nuxt/dist/client/components/v-search-results-title.js 596 B 0 B
./.nuxt/dist/client/components/v-search-results-title.modern.js 599 B 0 B
./.nuxt/dist/client/components/v-search-type-radio.js 791 B 0 B
./.nuxt/dist/client/components/v-search-type-radio.modern.js 767 B 0 B
./.nuxt/dist/client/components/v-server-timeout.js 299 B 0 B
./.nuxt/dist/client/components/v-server-timeout.modern.js 303 B 0 B
./.nuxt/dist/client/components/v-sketch-fab-viewer.js 3.37 kB 0 B
./.nuxt/dist/client/components/v-sketch-fab-viewer.modern.js 894 B 0 B
./.nuxt/dist/client/components/v-skip-to-content-container.js 887 B 0 B
./.nuxt/dist/client/components/v-skip-to-content-container.modern.js 896 B 0 B
./.nuxt/dist/client/components/v-snackbar.js 1.18 kB 0 B
./.nuxt/dist/client/components/v-snackbar.modern.js 1.19 kB 0 B
./.nuxt/dist/client/components/v-sources-table.js 16.6 kB 0 B
./.nuxt/dist/client/components/v-sources-table.modern.js 16.6 kB 0 B
./.nuxt/dist/client/components/v-warning-suppressor.js 298 B 0 B
./.nuxt/dist/client/components/v-warning-suppressor.modern.js 303 B 0 B
./.nuxt/dist/client/pages/about.js 1.52 kB 0 B
./.nuxt/dist/client/pages/about.modern.js 1.53 kB +1 B (0%)
./.nuxt/dist/client/pages/audio/_id/index.js 8.01 kB 0 B
./.nuxt/dist/client/pages/audio/_id/index.modern.js 4.84 kB 0 B
./.nuxt/dist/client/pages/external-sources.js 1.54 kB +1 B (0%)
./.nuxt/dist/client/pages/external-sources.modern.js 1.54 kB 0 B
./.nuxt/dist/client/pages/feedback.js 1.32 kB +1 B (0%)
./.nuxt/dist/client/pages/feedback.modern.js 1.32 kB 0 B
./.nuxt/dist/client/pages/image/_id/index.js 9.32 kB 0 B
./.nuxt/dist/client/pages/image/_id/index.modern.js 7.41 kB -2 B (0%)
./.nuxt/dist/client/pages/image/_id/report.js 3.59 kB +1 B (0%)
./.nuxt/dist/client/pages/image/_id/report.modern.js 4.2 kB +1 B (0%)
./.nuxt/dist/client/pages/index.js 8.64 kB +1 B (0%)
./.nuxt/dist/client/pages/index.modern.js 8.51 kB 0 B
./.nuxt/dist/client/pages/preferences.js 1.23 kB -1 B (0%)
./.nuxt/dist/client/pages/preferences.modern.js 1.22 kB 0 B
./.nuxt/dist/client/pages/privacy.js 994 B 0 B
./.nuxt/dist/client/pages/privacy.modern.js 995 B 0 B
./.nuxt/dist/client/pages/search-help.js 1.62 kB 0 B
./.nuxt/dist/client/pages/search-help.modern.js 1.62 kB 0 B
./.nuxt/dist/client/pages/search.js 5.18 kB +1 B (0%)
./.nuxt/dist/client/pages/search.modern.js 2.67 kB 0 B
./.nuxt/dist/client/pages/search/audio.js 6.13 kB -1 B (0%)
./.nuxt/dist/client/pages/search/audio.modern.js 3.63 kB 0 B
./.nuxt/dist/client/pages/search/image.js 596 B +1 B (0%)
./.nuxt/dist/client/pages/search/image.modern.js 2.72 kB 0 B
./.nuxt/dist/client/pages/search/index.js 481 B +2 B (0%)
./.nuxt/dist/client/pages/search/index.modern.js 487 B +1 B (0%)
./.nuxt/dist/client/pages/search/model-3d.js 243 B 0 B
./.nuxt/dist/client/pages/search/model-3d.modern.js 246 B -1 B (0%)
./.nuxt/dist/client/pages/search/search-page.types.js 265 B -1 B (0%)
./.nuxt/dist/client/pages/search/search-page.types.modern.js 271 B 0 B
./.nuxt/dist/client/pages/search/video.js 240 B 0 B
./.nuxt/dist/client/pages/search/video.modern.js 243 B -1 B (0%)
./.nuxt/dist/client/pages/sources.js 1.56 kB 0 B
./.nuxt/dist/client/pages/sources.modern.js 1.55 kB -1 B (0%)
./.nuxt/dist/client/vendors/app.js 63.8 kB 0 B
./.nuxt/dist/client/vendors/app.modern.js 63.1 kB 0 B

compressed-size-action

}) as unknown as ServerMiddleware

const PrometheusModule: Module = function () {
// Nuxt types don't fully type `this` parameter, this.nuxt is any.
Copy link
Contributor

Choose a reason for hiding this comment

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

FWIW you can use this feature (no pun intended) to type this.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I saw the example of typing this in the Nuxt's Module type:
https://github.com/nuxt/nuxt/blob/853439ddf945b6ee358d5912e6e5a68009633c27/packages/types/config/module.d.ts#L29
But the this.nuxt's type there is any :( . I am not sure it's worth the effort to add the type (and search for what exactly needs to be added) since the modules will need to be refactored for Nuxt 3.

Copy link
Contributor

Choose a reason for hiding this comment

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

Gotcha. FWIW when I remove the @ts-ignore locally I don't get any errors when I run pnpm types, but maybe my local environment isn't configured correctly?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

You're right, it must have been WebStorm complaining for me. I removed the @ts-ignore comments, and added type to app parameter from the nuxt/types repository hooks module (ConnectServer)

Copy link
Contributor

@sarayourfriend sarayourfriend left a comment

Choose a reason for hiding this comment

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

This looks great to me, Olga. Do you mind if we did it as a separate PR? Otherwise, it's hard to evaluate the differences in the code in the first PR that addresses the underlying issue. I'm happy to take this code reorganisation on as a separate task after the first PR is merged though, if you'd like (or review and approve this PR quickly 🙂)

@obulat
Copy link
Contributor Author

obulat commented Feb 1, 2023

This looks great to me, Olga. Do you mind if we did it as a separate PR? Otherwise, it's hard to evaluate the differences in the code in the first PR that addresses the underlying issue. I'm happy to take this code reorganisation on as a separate task after the first PR is merged though, if you'd like (or review and approve this PR quickly 🙂)

I am happy with any way that you feel is best, @sarayourfriend ! We can merge your PR as is.

Base automatically changed from add/separate-metrics-port to main February 8, 2023 04:41
@WordPress WordPress deleted a comment from github-actions bot Feb 9, 2023
@obulat obulat force-pushed the extract_prometheus_module branch from 260a950 to f619a7f Compare February 9, 2023 11:50
@obulat obulat marked this pull request as ready for review February 9, 2023 11:59
@obulat obulat requested a review from a team as a code owner February 9, 2023 11:59
@obulat obulat requested review from zackkrida and dhruvkb February 9, 2023 11:59
Copy link
Contributor

@sarayourfriend sarayourfriend left a comment

Choose a reason for hiding this comment

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

LGTM!

}) as unknown as ServerMiddleware

const PrometheusModule: Module = function () {
// Nuxt types don't fully type `this` parameter, this.nuxt is any.
Copy link
Contributor

Choose a reason for hiding this comment

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

Gotcha. FWIW when I remove the @ts-ignore locally I don't get any errors when I run pnpm types, but maybe my local environment isn't configured correctly?

Copy link
Member

@dhruvkb dhruvkb left a comment

Choose a reason for hiding this comment

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

LGTM. Appreciate the effort towards keeping the nuxt.config.ts file manageable.

@obulat obulat force-pushed the extract_prometheus_module branch from e57c7c4 to 919c462 Compare February 10, 2023 14:46
@obulat obulat merged commit 7b2f261 into main Feb 10, 2023
@obulat obulat deleted the extract_prometheus_module branch February 10, 2023 15:46
github-actions bot pushed a commit that referenced this pull request Feb 10, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
💻 aspect: code Concerns the software code in the repository 🧰 goal: internal improvement Improvement that benefits maintainers, not users 🟩 priority: low Low priority and doesn't need to be rushed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants