Code Monkey home page Code Monkey logo

instant-observability-website's Introduction

🚨 The code base for newrelic.com/instant-observability is now in github enterprise

Community Project header

Instant Observability Website

Dashboards, alerts, and integrations all in one place. This site hosts the public version of the Instant Observability Marketplace

Dependencies

  • Node v16 is used in this project as specified in .nvmrc.
  • Yarn v1.22

πŸ‘·β€β™‚οΈ Local development

You can serve this site locally to quickly see your changes and additions before you PR them. To get started, navigate into your new site’s directory and start it up, as follows.

cd instant-observability-website/
yarn install
yarn start

Your site is now running at http://localhost:8000!

πŸš€ Production Build

You can serve this site locally to quickly see your changes and additions before you PR them. To get started, navigate into your new site’s directory and start it up, as follows.

cd instant-observability-website/
yarn install
yarn build
yarn serve

Your site is now running at http://localhost:9000!

Path prefix

This site supports using a path prefix, allowing the site to work as if it was exposed at www.somewebsite.com/ while actually being exposed at www.somewebsite.com/instant-observability. The value of the prefix is defined in the gatsby-config.js file under the pathPrefix field.

To build to the with the path prefix enabled:

yarn build:production

To then serve the built site with path prefixing enabled:

yarn serve:production

βœ… CI/CD

Gatsby Build Service

  • Verifies that your branch can be built and generates a preview build.
  • This check is required for merges into main.

Fetch-quickstarts

Runs every 4 hours to pull in new quickstarts from Nerdgraph (New Relic's GraphQL instance) and commit them to the main branch.

Fetch related resources content

Runs every day to get various pages that relate to each quickstart from our vendor.

Clear website cache

Runs on every push to the main branch and clears out the newrelic.com/instant-observability cache. This can also be kicked off manually via a workflow run.

☁️ Hosting

  • This site is built and hosted on Gatsby Cloud
  • Changes are published on pushes to main.

Adding custom meta tags

Custom meta tags can be added for a quickstart in quickstart-metadata.json To add a new set of meta tags for a quickstart, add the following to the quickstart-metadata.json file.

{
  "<quickstart slug>": {
    "title": <title which should be in title meta tag>,
    "description": <description which should be in description meta tag>
  }
}

For example, to add a custom meta title and description to a quickstart with the slug cool-qs:

{
  "cool-qs": {
    "title": "Cool QS",
    "description": "Cool qs description for SEO purposes"
  }
}

Environment variables

key possible values notes
GATSBY_NEWRELIC_ENV development or production Used by the New Relic Gatsby Theme to determine the running environment. Set to production on prod.
PREFIX_PATHS true or false Enables path prefixing during builds and deployments. Set to true on prod.

🩹 Support

New Relic has open-sourced this project. This project is provided AS-IS WITHOUT WARRANTY OR DEDICATED SUPPORT. Issues and contributions should be reported to the project here on GitHub.

We encourage you to bring your experiences and questions to the Explorers Hub where our community members collaborate on solutions and new ideas.

🚧 Contributing

We welcome contributions to the New Relic I/O Site. Please review our Contributors Guide prior to submitting any code.

Keep in mind when you submit your pull request, you'll need to sign the CLA via the click-through using CLA-Assistant. You only have to sign the CLA one time per project. If you have any questions, or to execute our corporate CLA, required if your contribution is on behalf of a company, please drop us an email at [email protected].

🚦Code of conduct

Please review and agree to our Code of Conduct prior to submitting any code.

πŸ› Issues / enhancement requests

Please submit any issues or enhancement requests using one of our Issue Templates. Please search for and review the existing open issues before submitting a new issue to prevent the submission of duplicate issues.

πŸ–‹ License

The Instant Observability Website is licensed under the Apache 2.0 License.

The Instant Observability Website also uses source code from third-party libraries. You can find full details on which libraries are used and the terms under which they are licensed in the third-party notices document

πŸ”’ Security

As noted in our security policy, New Relic is committed to the privacy and security of our customers and their data. We believe that providing coordinated disclosure by security researchers and engaging with the security community are important means to achieve our security goals.

If you believe you have found a security vulnerability in this project or any of New Relic's products or websites, we welcome and greatly appreciate you reporting it to New Relic through HackerOne.

instant-observability-website's People

Contributors

aswanson-nr avatar clarkmcadoo avatar dikshab0202 avatar jbeveland27 avatar josephgregoryii avatar lizbaker avatar mdumpati avatar mickeyryan42 avatar moonlight-komorebi avatar nr-opensource-bot avatar pkosanam avatar pkudikyala avatar polfliet avatar ramanareddy8801 avatar ravitejasurampudi avatar rudouglas avatar sjyothi54 avatar smamindla57 avatar snyk-bot avatar sunnyzanchi avatar tabathadelane avatar zstix avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

instant-observability-website's Issues

Layout shifts when clicking on Data sources tab on certain quickstarts

Summary

Layout seems to shift when clicking on Data sources tab on a quickstart details page.

Repro steps:

  1. Go to a quickstart details page like this one or this one
  2. Click on Data sources tab
  3. Watch content shift to the right.

Screenshot

2022-02-15_16-35-23.mp4

Acceptance criteria

  • Clicking on Data sources tab maintains same layout like other tab views

[I/O Site] Selecting category in sidebar scrolls page to top

Summary

When selecting a category filter for quickstarts, the page scrolls to the top of the page without any transition

Steps to reproduce

  1. Navigate to I/O Site
  2. Scroll down the quickstart results
  3. Click a category to filter
  4. Page scrolls back to the top

Acceptance Criteria

  • Disable the scrolling behavior
  • Ensure selecting any category or repeated category does not scroll back to the top of the page

[SSR Public Catalog] Disable PR previews for forks

Summary

With the SSR changes, we now have new environment variables that we do not want stolen. Unfortunately, the Gatsby Build Service does not support waiting to run until the workflows are approved and will just immediately run for forks (when turned on, which it currently is 02/24/2022). So running on forks will need to be disable until such time that the service supports a safe forked workflow.

AC

  • Ask Gatsby support to disable previews for forked pull requests
  • Test that the Gatsby Build Service does not run for a forked PR

[I/O site] Update categories

Summary

We are updating the categories displayed on the I/O catalog. To do this, we just need to update the checked-in file that controls the available categories.

Extra info

  • instant-observability-categories.json
  • Note: the associatedKeywords field for each category corresponds to the categoryTerms field for that category in Nerdgraph
  • Note: the value field is just a 'slugified' version of the display name (lowercase, no spaces, etc)

Open questions

  • What are the categories that should be define for the I/O site specifically?
  • How should these differ from what is shown internally in the I/O Catalog?

AC

  • The new categories are available on newrelic.com/instant-observability

[I/O] Code stream quickstart CSS issue with logo

This quickstart seems to have different CSS on it, which shrinks the image rather than removing the picture at a certain breakpoint

Steps to reproduce

  1. Go to: https://newrelic.com/instant-observability/codestream/29bd9a4a-1c19-4219-9694-0942f6411ce7
  2. resize your view
  3. see the logo shrink very small

Image

Screen Shot 2022-03-11 at 5 28 54 PM

Expected

The logo doesn't shrink so small and is better represented at small screen sizes.

Quickstart note

The logo file is an SVG, so I'm wonder if it's a fix to the logo itself.

[SSR Public Catalog] Remove code / automation for manually fetching quickstarts

Description

Once we have fully swapped the landing page and the detail page over to being powered by Gatsby SSR functions, we no longer need to have a Github workflow that runs every few hours to make API requests and build up a JSON file.

This ticket is to clean up that functionality and the files we are no longer using.

Acceptance Criteria

[I/O Site SSR] Details page neglects to load after viewing multiple quickstarts

Relates to #85, #81

Description

Swapping between multiple quickstarts with SSR integrated leads to not being able to view a quickstart's details page. This issue may be resolved from issue #78 by caching the quickstart information, however this is uncertain.

Steps to reproduce

  1. Navigate to the I/O SSR feature site.
  2. Click on a few quickstarts to view their detail page
  3. After a few clicks on different quickstarts, a 414 appears in network tab or the page breaks and does not display the details page

Acceptance Criteria

  • Determine the cause of the page not rendering details page and a possible fix
  • Ensure a user can visit a quickstart's details page on any quickstart
  • TBD - add alerting to tell if a quickstart detail's page is not displaying (not sure if possible)

[SSR Public Catalog] Document Gatsby SSR and update Runbooks

Description

While switching from manually fetching JSON to Gatsby SSR functions, we added some additional instrumentation and alerting. To help make on-call shifts easier, we should add information about this to our Emergency Runbook.

Acceptance Criteria

  • #45
  • Update README to explain how the Gatsby SSR + NerdGraph code works (with lots of documentation links, plz)
  • Update Emergency Runbook to include information about new alerts
  • Add a diagram about how the SSR pages work on the I/O site
  • Update our troubleshooting dashboard to reflect the new alerts / instrumentation

[I/O Site] Extra white padding to right of Categories in chrome

Summary

With the addition of SSR, the landing page can get into a broken state that leads to some interesting UI/UX. Specifically, some odd padding is rendered in the categories page.
This issue may be resolved from #80 or relating issues that are from javascript errors, however the cause of this issue is still unknown. Reproducing the bug is not consistent.

Example of bug Screen Shot 2022-03-11 at 11 24 06 AM Screen Shot 2022-03-11 at 11 26 06 AM

Acceptance Criteria

  • Identify how to reproduce this problem
    -I think this is only be happening in the feature/ssr branches.

  • Determine a fix, and/or if it is related to #80 or similar tickets

[Repolinter] Open Source Policy Issues

Repolinter Report

πŸ€–This issue was automatically generated by repolinter-action, developed by the Open Source and Developer Advocacy team at New Relic. This issue will be automatically updated or closed when changes are pushed. If you have any problems with this tool, please feel free to open a GitHub issue or give us a ping in #help-opensource.

This Repolinter run generated the following results:

❗ Error ❌ Fail ⚠️ Warn βœ… Pass Ignored Total
0 2 1 4 0 7

Fail #

❌ readme-starts-with-community-header #

The README of a community project should have a community project header at the start of the README. If you already have a community project header and this rule is failing, your header may be out of date, and you should update your header with the suggested one below. For more information please visit https://opensource.newrelic.com/oss-category/. Below is a list of files or patterns that failed:

  • README.md: The first 5 lines do not contain the pattern(s): Open source Community header (see https://opensource.newrelic.com/oss-category).
    • πŸ”¨ Suggested Fix: prepend [![Community header](https://github.com/newrelic/opensource-website/raw/master/src/images/categories/Community_Project.png)](https://opensource.newrelic.com/oss-category/#community-project) to file

❌ readme-contains-link-to-security-policy #

Doesn't contain a link to the security policy for this repository (README.md). New Relic recommends putting a link to the open source security policy for your project (https://github.com/newrelic/<repo-name>/security/policy or ../../security/policy) in the README. For an example of this, please see the "a note about vulnerabilities" section of the Open By Default repository. For more information please visit https://nerdlife.datanerd.us/new-relic/security-guidelines-for-publishing-source-code.

Warning #

Click to see rules

⚠️ third-party-notices-file-exists #

A THIRD_PARTY_NOTICES.md file can be present in your repository to grant attribution to all dependencies being used by this project. This document is necessary if you are using third-party source code in your project, with the exception of code referenced outside the project's compiled/bundled binary (ex. some Java projects require modules to be pre-installed in the classpath, outside the project binary and therefore outside the scope of the THIRD_PARTY_NOTICES). Please review your project's dependencies and create a THIRD_PARTY_NOTICES.md file if necessary. For JavaScript projects, you can generate this file using the oss-cli. For more information please visit https://docs.google.com/document/d/1y644Pwi82kasNP5VPVjDV8rsmkBKclQVHFkz8pwRUtE/view. Did not find a file matching the specified patterns. Below is a list of files or patterns that failed:

  • THIRD_PARTY_NOTICES*
  • THIRD-PARTY-NOTICES*
  • THIRDPARTYNOTICES*

Passed #

Click to see rules

βœ… license-file-exists #

Found file (LICENSE). New Relic requires that all open source projects have an associated license contained within the project. This license must be permissive (e.g. non-viral or copyleft), and we recommend Apache 2.0 for most use cases. For more information please visit https://docs.google.com/document/d/1vML4aY_czsY0URu2yiP3xLAKYufNrKsc7o4kjuegpDw/edit.

βœ… readme-file-exists #

Found file (README.md). New Relic requires a README file in all projects. This README should give a general overview of the project, and should point to additional resources (security, contributing, etc.) where developers and users can learn further. For more information please visit https://github.com/newrelic/open-by-default.

βœ… readme-contains-discuss-topic #

Contains a link to the appropriate discuss.newrelic.com topic (README.md). New Relic recommends directly linking the your appropriate discuss.newrelic.com topic in the README, allowing developer an alternate method of getting support. For more information please visit https://nerdlife.datanerd.us/new-relic/security-guidelines-for-publishing-source-code.

βœ… code-of-conduct-should-not-exist-here #

New Relic has moved the CODE_OF_CONDUCT file to a centralized location where it is referenced automatically by every repository in the New Relic organization. Because of this change, any other CODE_OF_CONDUCT file in a repository is now redundant and should be removed. Note that you will need to adjust any links to the local CODE_OF_CONDUCT file in your documentation to point to the central file (README and CONTRIBUTING will probably have links that need updating). For more information please visit https://docs.google.com/document/d/1y644Pwi82kasNP5VPVjDV8rsmkBKclQVHFkz8pwRUtE/view. Did not find a file matching the specified patterns. All files passed this test.

[Public Catalog] Contributors component

Summary

Add component to use in the right column to display contributor data for a particular o11y pack.

Acceptance criteria

  • Need decision on if this is going also available in the product exp.
  • We'd need to obtain the github data for this to pull in the contributor information
  • Displays top contributors to the particular Olly Pack (directory)
  • Provides a link to the repo so a user can easily contribute to the pack repo

Visual Design

Screen Shot 2021-05-26 at 8 13 02 PM

[Public Catalog] Move the Build your own tile

We've had several requests to move the build your own tile from the first slot of the external I/O catalog and also change the link it's reference to point to our developer site guides instead of the repository. But it's important to the partner ecosystem and the goals of DevEn to increase contributions so we need to find an approach.

This data can be found on internal dashboard [DevEn] External I/O & Quickstarts Ecosystem

Data

  1. in the past 12 weeks we had 489 clicks on the build your own tile
  2. in the past 12 weeks we had 872 clicks on the view repo button
  3. In the past 12 weeks the most commonly click view repo buttons by quickstarts are:
  • laravel - 59
  • node-js - 39
  • php - 37
  • dotnet - 32
  • ibmmq - 29
  • codestream - 25

Considerations

Approach 1

Because we need I/O to focus on new users, we should find other venues to crowdsource contributors. (in-product might be better, once they have already used a quickstart) so remove the build your own tile all together but keep view repo buttons

Approach 2

Replace view repo with a generic Build your own button then, as the repo level configurations aren't very useful in the context of knowing nothing about I/O and quickstarts.

others

  • see AC

Acceptance Criteria

  • confirm with @legnaleama what the approach should
  • completely remove the build your own tile
  • change the footer button from create an issue to build your own

[I/O Site] Improve image handling

Summary

Currently quickstart images are sourced directly from github. Which is not an ideal situation since we have no control over that hosting provider. Instead, we should move to pulling down the images during build, allow sharp to process them, and then host them with the rest of the site on a CDN (Gatsby Cloud). This will also prevent images from 404ing if github goes down and should help with adblockers blocking 3rd party urls with ad in the name.
The main benefits of this approach is getting the processing and optimizations that sharp adds to sourced images.

Desired Behavior

  • On build, the site looks at each quickstart related image url, pulls it down locally, and adds it to graphql.
  • Those images are then optimized by gatsby-transformer-sharp
  • Then they are rendered onto the page
  • We see an increase in performance in lighthouse reports

Possible Solution

  • Creating a local gatsby plugin for the pulling and adding to graphql part is probably the easiest way to do this.

Additional context

[I/O Site] New Users who sign up can't install a quickstart on the external site

Related

Video

Issue

In the linked video a user who was attempting to sign up and install a quickstart at the same time has an issue with clicking the install button and has to going into NR1 and install the quickstart. We are concerned there may be an issue with identifying the user has an account, thus allowing them to click the install button on the I/O external site to install the quickstart without having to go into NR1.

related to this ticket #51 as we'd could measure new user install data from the i/o site.

Acceptance Criteria

  • Attempt to reproduce the issue
  • Determine what may be the problem
  • Identify the work to resolve it we find a problem (issue 1)
  • Identify the work to resolve it we find a problem (issue 2)
  • Document the process for how we use cookies to allow installation of quickstart

Tessen Query

This seems to show the instance of a bad cookie on install

FROM TessenAction SELECT * WHERE fullArtifactId LIKE 'install-newrelic%' and eventName = 'INSTALL_GuidedInstall_badQuickstartsCookie'

Expected

  • After signing up, the quickstart context is not lost. The user should be taken to a quickstart summary page to continue installing in the product. After some initial troubleshooting it appears that the quickstart cookie may not be set correctly or is getting lost in the sign up flow.

  • Once logged in, the user is taken to a sign up screen. without needing to refresh the external I/O page after singing up / signing in. .

[I/O Site] handle cache settings at site level

currently have site cache settings defined on fastly to 1hr, we'll want to control that at the site level, so it's not at the CDN Level.

Acceptance Criteria

  • update the site wiki with documentation the use of Fastly, caching and other useful info

[SSR Public Catalog] Create a 500 error page

Description

With the transition to using SSR for the I/O catalog pages, we now have the possibility to hit a 500 HTTP error on these pages.

Design Questions

  • What is the preferred design for a 500 error given we can load most of our components (see below) but not the navigation or search given that will be powered by the catalog service & SSR.
  • This is only for the I/O experience and doesn't really apply to the dev , docs or oss sites as those sites don't use the catalog service or SSR So we don't have to apply this solution to those sites.
  • Review language with UI-Writing team for suggestions.

Design References 🎨

What components will load and fail to load in case of a 500

Screen Shot 2021-12-07 at 4 13 14 PM

Screen Shot 2021-12-07 at 4 13 25 PM

Mock Up πŸ§‘β€πŸŽ¨

(I:O 500 error

Links

Error message content

We are currently experiencing technical issues loading the Instant Observability catalog. Please use the guided install tile below to start the install process.

Acceptance Criteria

  • a design is provided that we can use
  • Ensure this approach works on mobile
  • a 500 page is visible when running yarn develop at localhost:8000/500
  • a 500 page is visible when the catalog service fails to load the navigation of I/O.

[Dashboards] Install Funnel dashboards should track new user data, not just existing users `part 3`

Part 1 - A NRQL Hope: newrelic/developer-website#1913
Part 2 - The Empire Facets Back: newrelic/developer-website#1937

This is part 3 of the most epic trilogy of our time. The return of the Dashboards/ The Good the Bad and the NRQL/ Die Hard with a Funnel

In our work to build the BIG FUNNEL ℒ️ We were able to correlate some information, but it's only from existing users. This is because we have a customer_user_id attribute that we can correlate across all events:

FROM TessenAction
SELECT
funnel(customer_user_id as 'user',
  WHERE eventName = 'TDEV_QuickstartInstall_instantObservability' as 'Public catalog install click',
  WHERE eventName = 'DEVEX_New Relic IO_initialLoad' as 'Visit New Relic I/O', 
  WHERE eventName = 'DEVEX_New Relic IO_listingClicked' as 'View details', 
  WHERE eventName = 'DEVEN_Quickstart Details_clickInstall' as 'Click install', 
  WHERE eventName = 'INSTALL_QuickstartInstallationPlan_viewQuickstartInstallationUI' as 'Load install',
  WHERE eventName = 'INSTALL_QuickstartInstallationPlan_viewInstallStep' as 'View install step',
  WHERE eventName = 'INSTALL_QuickstartInstallationPlan_deployQuickstartComponents' as 'Deploy components',
  WHERE eventName = 'INSTALL_QuickstartInstallationPlan_clickSeeYourData' as 'See data'
)
WHERE email NOT LIKE '%@newrelic.com' SINCE 1 week AGO LIMIT MAX

The events in the product require an anonymousId so we can get the data for all users. We have completed the work in the Quickstart Details nerdlet which is now merged:

The work for the marketplace repo has been merged to a feature branch but due to the code freeze it won't be pushed to production until early January, so we'll need to follow up with DevEx on this.
- https://source.datanerd.us/nr1-dev-experience/marketplace/pull/140

The work for the nr1-install-newrelic repo has been done and is awaiting review. We will need to work with Virtuoso to get this merged but it will likely also be affected by the codefreeze.

Acceptance Criteria

These Funnels are available in our [DevEn] External I/O & Quickstarts Ecosystem dashboard

[I/O Site SSR] Tabs not displaying content in quickstart details page

Relates to #85 , #80

Description

When navigating through quickstarts with SSR integrated, most quickstarts' details page lead to a broken page which stops the user from being able to navigate the tabs on the page.

Steps to reproduce

  1. Navigate to the I/O SSR feature site.
  2. Click on a few quickstarts to view their detail page
  3. Navigate to one of the tabs
  4. Information on tabs are inconsistent and mainly result in a broken page

Acceptance Criteria

  • Determine the cause of the page not rendering tabs and a possible fix
  • Ensure a user can visit all tabs on quickstart's details page on any quickstart
  • TBD - add some sort of alerting to tell if a quickstart tab details is not displaying (not sure if possible)

Mobile: the cookie banner is not centered on the page

We need to center the cookie modal better on mobile views

Steps to Reproduce

  1. open up the I/O site on Mobile, in a private window (so you can see the cookie banner)
  2. See the cookie modal off centered. 😱

Image

Screen Shot 2022-03-11 at 5 35 56 PM

Expected

the cookie banner is not off centered

[I/O Site] Account transfers and access for CXP-UI

The following accounts changes will need to be made to support the handoff of the I/O site to CXP-UI

DevEn Team considerations

  • Ensure the team has Gatsby cloud access (to the I/O site specifically, not all sites)
  • Share the DevEn dashboards New Relic so they can copy what they need to their new team account.
  • Ensure the team is setup in Github org
  • Ensure team has admin on GH repo for the i/o site
  • Ensure DevEn is no longer the admin of the repo.
  • Generate new API key for their staging account N/A
  • Add that API key to Gatsby Cloud and Github N/A
  • Let the analytics team know CXP-UI is taking over the site.

CXP-UI Team considerations

  • Ensure the team has GA access so they can see analytics data.
  • Ensure the PM / Eng Manager has Segment access to the i/o source.
  • Make a new team on Staging for CXP-UI if doesn't already exist.
  • Confirm if this team has prod access in OKTA for pager duty and AWS
  • Ensure team is setup in pager duty, they'll need to create a pager duty team

[I/O site] Review our approach to APDEX alerting for the site

APDEX alerts are being triggered for the I/O site now that we move to the newrelic.com domain and we want to better understand the use of the alert and what we should focus on to try to resolve this alert.

Acceptance Criteria

  • Discuss our use of APDEX and if it's useful and what it means to our team
  • Consider if this alert should be modified or turned off
    • If this is a metric we want to keep, perhaps we turn off PagerDuty alerting but still keep some light alerting. So if this triggers, we know, but dont have to wake up in the middle of night to not be able to resolve it.
  • Better understand our network topology for our use of Gatsby Cloud, it's on Fastly under the hood.
  • Take next steps, file tickets, etc.

[I/O Site] investigate decoupling the theme from the new I/O site after launch

Once we migrate I/O to a stand alone Gatsby Site, We have an opportunity to decouple this site from our Gatsby Theme as we've begun to take a different approach to this site where keeping it dependent on the theme may no longer make sense.

Acceptance Criteria

  • Audit I/O site and determine what would need to be rebuilt in the I/O site if we de-coupled the theme
  • Consider the impacts and effort to decouple the theme
  • Plan out the work and break down the work

[SSR Public Catalog] Rebase/merge main with SSR code

We are blocked by this lack of functionality of Gatsby Cloud not supporting private environment variables so our design changes will be done in a branch cut from develop, and our SSR changes will eventually need to merge with the design changes once we are unblocked.

Acceptance Criteria

  • Confirm when the env variable feature will be delivered by Gatsby
  • Add NERDGRAPH_URL environment variable to Gatsby Cloud (value should be https://api.newrelic.com/graphql)
  • Add NEW_RELIC_API_KEY environment variable to Gatsby Cloud (value should be an API key from the Developer Enablement account on prod)
  • Document the New Relic account and API key used for the site, here
  • resolve all the joyous merged conflicts
  • release to production
  • Notify virtuoso and devex we no longer rely on the OILS service πŸ›’οΈ

[Repolinter] Open Source Policy Issues

Repolinter Report

πŸ€–This issue was automatically generated by repolinter-action, developed by the Open Source and Developer Advocacy team at New Relic. This issue will be automatically updated or closed when changes are pushed. If you have any problems with this tool, please feel free to open a GitHub issue or give us a ping in #help-opensource.

This Repolinter run generated the following results:

❗ Error ❌ Fail ⚠️ Warn βœ… Pass Ignored Total
0 2 1 4 0 7

Fail #

❌ readme-starts-with-community-header #

The README of a community project should have a community project header at the start of the README. If you already have a community project header and this rule is failing, your header may be out of date, and you should update your header with the suggested one below. For more information please visit https://opensource.newrelic.com/oss-category/. Below is a list of files or patterns that failed:

  • README.md: The first 5 lines do not contain the pattern(s): Open source Community header (see https://opensource.newrelic.com/oss-category).
    • πŸ”¨ Suggested Fix: prepend [![Community header](https://github.com/newrelic/opensource-website/raw/master/src/images/categories/Community_Project.png)](https://opensource.newrelic.com/oss-category/#community-project) to file

❌ code-of-conduct-should-not-exist-here #

New Relic has moved the CODE_OF_CONDUCT file to a centralized location where it is referenced automatically by every repository in the New Relic organization. Because of this change, any other CODE_OF_CONDUCT file in a repository is now redundant and should be removed. Note that you will need to adjust any links to the local CODE_OF_CONDUCT file in your documentation to point to the central file (README and CONTRIBUTING will probably have links that need updating). For more information please visit https://docs.google.com/document/d/1y644Pwi82kasNP5VPVjDV8rsmkBKclQVHFkz8pwRUtE/view. Found files. Below is a list of files or patterns that failed:

  • CODE_OF_CONDUCT.md
    • πŸ”¨ Suggested Fix: Remove file

Warning #

Click to see rules

⚠️ third-party-notices-file-exists #

A THIRD_PARTY_NOTICES.md file can be present in your repository to grant attribution to all dependencies being used by this project. This document is necessary if you are using third-party source code in your project, with the exception of code referenced outside the project's compiled/bundled binary (ex. some Java projects require modules to be pre-installed in the classpath, outside the project binary and therefore outside the scope of the THIRD_PARTY_NOTICES). Please review your project's dependencies and create a THIRD_PARTY_NOTICES.md file if necessary. For JavaScript projects, you can generate this file using the oss-cli. For more information please visit https://docs.google.com/document/d/1y644Pwi82kasNP5VPVjDV8rsmkBKclQVHFkz8pwRUtE/view. Did not find a file matching the specified patterns. Below is a list of files or patterns that failed:

  • THIRD_PARTY_NOTICES*
  • THIRD-PARTY-NOTICES*
  • THIRDPARTYNOTICES*

Passed #

Click to see rules

βœ… license-file-exists #

Found file (LICENSE). New Relic requires that all open source projects have an associated license contained within the project. This license must be permissive (e.g. non-viral or copyleft), and we recommend Apache 2.0 for most use cases. For more information please visit https://docs.google.com/document/d/1vML4aY_czsY0URu2yiP3xLAKYufNrKsc7o4kjuegpDw/edit.

βœ… readme-file-exists #

Found file (README.md). New Relic requires a README file in all projects. This README should give a general overview of the project, and should point to additional resources (security, contributing, etc.) where developers and users can learn further. For more information please visit https://github.com/newrelic/open-by-default.

βœ… readme-contains-link-to-security-policy #

Contains a link to the security policy for this repository (README.md). New Relic recommends putting a link to the open source security policy for your project (https://github.com/newrelic/<repo-name>/security/policy or ../../security/policy) in the README. For an example of this, please see the "a note about vulnerabilities" section of the Open By Default repository. For more information please visit https://nerdlife.datanerd.us/new-relic/security-guidelines-for-publishing-source-code.

βœ… readme-contains-discuss-topic #

Contains a link to the appropriate discuss.newrelic.com topic (README.md). New Relic recommends directly linking the your appropriate discuss.newrelic.com topic in the README, allowing developer an alternate method of getting support. For more information please visit https://nerdlife.datanerd.us/new-relic/security-guidelines-for-publishing-source-code.

[I/O Site SSR] Cache category filters

Description

When selecting a category filter on the I/O site, it takes about 1-5 seconds to initially render the results from the API request. After the user clicks around for a bit, some filtering renders faster, and it is inconsistent with load time.

References

https://www.gatsbyjs.com/docs/conceptual/rendering-options/

Acceptance Criteria

  • Consider if we need caching done on Fastly and/or Gatsby's side
  • Enable caching on the server
  • Confirm caching is stable and clicking around filters does not trigger 414s
  • report our experience to DevEx so they can continue to consider if they need to optimize the catalog service

[SSR Public Catalog] Copy over code from `newrelic/developer-website`

Summary

When we initially started this epic all the work was stored in a feature branch, feature/gatsby-srr, it's still there. In the meantime, we have completely redone the design and transferred all the code over to a new repository. Now we need to get that all that SSR related code over to the instant-observability-website repository.

Desired Behavior

Note: Searching and filtering do not need to be functional for this ticket, they are being handled in #42

AC

  • SSR related code is transferred to the feature/ssr branch in instant-observability-website
  • The catalog can be viewed with data coming directly from nerdgraph
  • The catalog can be sorted
  • The details of a quickstart can be viewed with data coming directly from nerdgraph

[I/O Site] incorrect 404 page rendering on newrelic.com/instant-observability

The gatsby-theme 404 don't seem to actually be rendering when a user hits a 404 page on newrelic.com/instant-observability.

note This could require coordination with marketing web team, as the domain is hosted on Fastly.

Steps to reproduce

Expected

[SSR Public Catalog] Update search and filtering to use SSR

Description

Once we have established a pattern for querying NerdGraph for quickstarts on the landing page (#1853), we should use the API to power the functionality for searching and filtering the results. This would replace our client-side functionality (which has gotten to be pretty complicated).

GraphQL

Here's an example query:

{
  actor {
    nr1Catalog {
      search(filter: {components: ALERTS}) {
        results {
          ... on Nr1CatalogQuickstart {
            id
            metadata {
              displayName
            }
          }
        }
      }
    }
  }
}

Note

A large portion of this work as already been completed in this pull request. It should be pulled over to the new site.

Acceptance Criteria

  • newrelic/developer-website#1821 (proof-of-concept & Gatsby upgrade)
  • newrelic/developer-website#1852 (feature branch & Gatsby Cloud)
  • newrelic/developer-website#1853 (landing page via SSR)
  • Update search to use use SSR + a NerdGraph API call
  • Update filtering to use SSR + a NerdGraph API call
  • Add tests for search
  • Add tests for filter
  • Ensure that searching and filtering still updates the URL as it did previously
  • Remove all unused client-side search and filter code

[I/O Site] Carousel bunches up quickstarts on page load with small screen sizes

Description

When a user navigates to the site, if they are viewing the site on mobile or a smaller screen size, the carousel bunches up the quickstarts before the CSS kicks in and fixes it.

Reference to issue

Screen Shot 2022-03-11 at 11 52 07

Acceptance Criteria

  • Create a transition to display the carousel (TBD)
  • Ensure the carousel has the CSS properties loaded before displaying
  • Ensure the changes work at different width breakpoints and mobile view

[SSR Public Catalog] Instrumentation & Alerting for API calls to NerdGraph

Description

As part of "production readiness" for swapping New Relic I/O over to being powered by NerdGraph, we should instrument the API calls being made and set up some alerting for failures.

It's not clear in which context the API calls are being made: are they happening in the browser or are Gatsby's Cloud Functions executing "server-side" somewhere? If they're happening client-side, we may be able to use New Relic's Browser agent to log these events. If they're happening server-side, then we may need to leverage New Relic custom events (since we don't have an agent installed in Gatsby).

Acceptance Criteria

  • newrelic/developer-website#1821 (proof-of-concept & Gatsby upgrade)
  • newrelic/developer-website#1852 (feature branch & Gatsby Cloud)
  • newrelic/developer-website#1853 (landing page via SSR)
  • #42 (search and filter via SSR)
  • newrelic/developer-website#1854 (details page via SSR)
  • Determine how we can get API call information into New Relic
  • Set up instrumentation for API calls to NerdGraph for /instant-observability
  • Set up instrumentation for API calls to NerdGraph for the quickstart detail page
  • Set up an alert condition for any failed API calls to the service
    • alert on production instead of our feature branch
  • Charts that track successes and failures of API calls to troubleshooting dashboard
    • track production instead of our feature branch
  • update wiki with new events tracked, links to dashboard, alerts, etc

[I/O site] Site doesn't have a 3rd party notice file

Similar to the developer site we should auto generate a 3rd party notice file to comply with our OSS policies

https://github.com/newrelic/developer-website/blob/develop/THIRD_PARTY_NOTICES.md

Questions

  • Do we actually need this? the Docs site doesn't have one.

yes, @melissaklein24 confirmed if any repo uses a dependency, this is required.

  • This file seems to be auto generated by the OSS bot. 🀷 How does this work exactly?

it's run with a workflow job

  • We mention this file in our readme, but we don't actually have a file for third party notices.

let's add one

Acceptance Criteria

  • Determine if this file is even required anymore in OSS
  • Generate a third party notice file called THIRD_PARTY_NOTICES.md in the root directory
  • Consider if the docs site repo needs one @roadlittledawn

[I/O Site] Get splat redirects working for dev site IO

Summary

As part of the I/O site migration to newrelic.com, we needed to create redirects so any URLs pointing to developer.newrelic.com/instant-observability/<rest of path> would make it to their new spot at newrelic.com/instant-observability/<rest of path>. Currently, this is done by creating a redirect for the catalog itself and for each quickstart details page. While this approach does get us where we need to be, it requires the developer site to maintain references to the various quickstart names and ids for the creation of the redirects. We would prefer this not to be the case since the rest of the I/O related code has been migrated to the new site.

Possible solution

Splat/star/wildcard redirects, ex: instant-observability/* would match anything with the instant-observability/ prefix. Gatsby has a great article on how to work with redirects, including "splat" patterns.

Helpful information

  • @nr-kkenney made an attempt at getting "splat" redirects working, but ran into issues. The starting point with this ticket is most likely restarting this conversation with Gatsby support.
  • Dev site redirect creation

[I/O Site SSR] Search field is slow to return results

Summary

When adding input to the search query using SSR, loading the results takes a long time. This may be due to querying nerdgraph after each keystroke.

Steps to reproduce:

  1. Navigate to the I/O SSR Feature Site
  2. Search for a quickstart in the search input
  3. Quickstart results populate after multiple seconds

Acceptance Criteria

  • #78
  • #82
  • Wait to query the search input after a certain number of keystrokes (TBD)
  • Wait to query the search input after a specified amount of time has elapsed before querying (TBD)

[I/O Site] [Repolinter] Open Source Policy Issues

Repolinter Report

πŸ€–This issue was automatically generated by repolinter-action, developed by the Open Source and Developer Advocacy team at New Relic. This issue will be automatically updated or closed when changes are pushed. If you have any problems with this tool, please feel free to open a GitHub issue or give us a ping in #help-opensource.

This Repolinter run generated the following results:

❗ Error ❌ Fail ⚠️ Warn βœ… Pass Ignored Total
0 1 1 5 0 7

Fail #

❌ readme-starts-with-community-header #

The README of a community project should have a community project header at the start of the README. If you already have a community project header and this rule is failing, your header may be out of date, and you should update your header with the suggested one below. For more information please visit https://opensource.newrelic.com/oss-category/. Below is a list of files or patterns that failed:

  • README.md: The first 5 lines do not contain the pattern(s): Open source Community header (see https://opensource.newrelic.com/oss-category).
    • πŸ”¨ Suggested Fix: prepend [![Community header](https://github.com/newrelic/opensource-website/raw/master/src/images/categories/Community_Project.png)](https://opensource.newrelic.com/oss-category/#community-project) to file

Warning #

Click to see rules

⚠️ third-party-notices-file-exists #

A THIRD_PARTY_NOTICES.md file can be present in your repository to grant attribution to all dependencies being used by this project. This document is necessary if you are using third-party source code in your project, with the exception of code referenced outside the project's compiled/bundled binary (ex. some Java projects require modules to be pre-installed in the classpath, outside the project binary and therefore outside the scope of the THIRD_PARTY_NOTICES). Please review your project's dependencies and create a THIRD_PARTY_NOTICES.md file if necessary. For JavaScript projects, you can generate this file using the oss-cli. For more information please visit https://docs.google.com/document/d/1y644Pwi82kasNP5VPVjDV8rsmkBKclQVHFkz8pwRUtE/view. Did not find a file matching the specified patterns. Below is a list of files or patterns that failed:

  • THIRD_PARTY_NOTICES*
  • THIRD-PARTY-NOTICES*
  • THIRDPARTYNOTICES*

Passed #

Click to see rules

βœ… license-file-exists #

Found file (LICENSE). New Relic requires that all open source projects have an associated license contained within the project. This license must be permissive (e.g. non-viral or copyleft), and we recommend Apache 2.0 for most use cases. For more information please visit https://docs.google.com/document/d/1vML4aY_czsY0URu2yiP3xLAKYufNrKsc7o4kjuegpDw/edit.

βœ… readme-file-exists #

Found file (README.md). New Relic requires a README file in all projects. This README should give a general overview of the project, and should point to additional resources (security, contributing, etc.) where developers and users can learn further. For more information please visit https://github.com/newrelic/open-by-default.

βœ… readme-contains-link-to-security-policy #

Contains a link to the security policy for this repository (README.md). New Relic recommends putting a link to the open source security policy for your project (https://github.com/newrelic/<repo-name>/security/policy or ../../security/policy) in the README. For an example of this, please see the "a note about vulnerabilities" section of the Open By Default repository. For more information please visit https://nerdlife.datanerd.us/new-relic/security-guidelines-for-publishing-source-code.

βœ… readme-contains-discuss-topic #

Contains a link to the appropriate discuss.newrelic.com topic (README.md). New Relic recommends directly linking the your appropriate discuss.newrelic.com topic in the README, allowing developer an alternate method of getting support. For more information please visit https://nerdlife.datanerd.us/new-relic/security-guidelines-for-publishing-source-code.

βœ… code-of-conduct-should-not-exist-here #

New Relic has moved the CODE_OF_CONDUCT file to a centralized location where it is referenced automatically by every repository in the New Relic organization. Because of this change, any other CODE_OF_CONDUCT file in a repository is now redundant and should be removed. Note that you will need to adjust any links to the local CODE_OF_CONDUCT file in your documentation to point to the central file (README and CONTRIBUTING will probably have links that need updating). For more information please visit https://docs.google.com/document/d/1y644Pwi82kasNP5VPVjDV8rsmkBKclQVHFkz8pwRUtE/view. Did not find a file matching the specified patterns. All files passed this test.

[I/O Site] Conduct technical deep dive session `3/22/22`

We'll meet with CXP-UI and walk them through the technical nuances of the I/O Site on 3/22/22

Technical Deep Dive with CXP-UI

  • Meeting is scheduled for Mar 22, 2022 at 8am PST
  • The team collectively works to better understand how I/O site works and asks questions as needed
  • Discuss the use of gatsby theme
  • Discuss the concept of our component library
  • Discuss how tessen & segment work for I/O site
  • Discuss deployments and build process
  • Discuss Gatsby cloud
  • Discuss example hero requests
  • Show how it’s deployed

[I/O Site] "Install New Relic" button inside leaves Guided Install container

Summary

In the Guided Install tile, the "Install New Relic" button leaves the parent container.

Steps to reproduce

  1. Navigate to I/O Site
  2. Filter the categories OR add input to the search query
  3. "Install New Relic" button leaves Guided Install Tile
Reference of issue Screen Shot 2022-03-11 at 3 51 11 PM

Possible location of bug within the code:

<div
css={css`
position: absolute;
bottom: 1rem;
`}
>
<Button
onClick={handleButtonClick}
variant={Button.VARIANT.PRIMARY}
size={Button.SIZE.SMALL}
>
Install New Relic
</Button>
</div>

Acceptance Criteria

  • Locate cause of bug and fix the positioning to remain inside the Guided Install Tile
  • Filter categories through the sidebar and verify if the install new relic button leaves the container
  • Add an input in the search query and verify if the install new relic button leaves the container

[I/O Site SSR] Cannot toggle light/dark mode after navigating to quickstart details page

Relates to #80, #81

Summary

This issue may be resolved once we get caching in place with SSR. Currently, when a user navigates to the quickstart details page, the toggle button for dark/light mode does nothing.

Steps to reproduce:

  1. Navigate to SSR Feature site
  2. Click on any quickstart (some may be broken. If it is, select a different quickstart)
  3. Click on the toggle icon in the global header
  4. Clicking the toggle should switch between dark/light mode, and it doesn't do anything.

Acceptance Criteria

  • Locate the issue that disables the toggle button on a quickstart's details page
  • Ensure that a user can toggle light/dark mode anywhere on the I/O Site

[I/O Site] No limit set on search input length

Summary

The search input for the I/O Site does not limit the characters to a specified amount. It allows the user to search for extremely long inputs, which leads to breaking the UI. Not limiting the search also allows for the input to overlap with the β€œx” button to close out search.

Example of long inputs

Screen Shot 2022-03-11 at 11 32 38

Screen Shot 2022-03-11 at 11 47 42

Acceptance Criteria

  • Limit search input to 128 or less characters (Specific cap TBD)
  • Test to make sure the search input gets capped to that query

[I/O Site] Update fetch quickstart workflow to pull from catalog service

ISSUE

We disabled Fetch Quickstarts to allow us to launch the Carousel feature but there is hero requst to update the external site with cloud flare content (See PR) as there is launch today with a partner.

as a note: this workflow has been off for 13 days, and the SRR work would make this workflow irrelevant but we still have bugs to resolve before we can release SSR.

Steps to reproduce

look for cloudflare on the external site, then look for cloudflare in the internal catalog, notice it's only visible internally.

Expected

We can see cloud flare on the external site.

can we either

  1. re-enable the workflow, so we can update the quickstart content. then disable it again.
  2. Manually update the site to include cloudflare quickstart.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.