Code Monkey home page Code Monkey logo

newrelic / nr1-cloud-optimize Goto Github PK

View Code? Open in Web Editor NEW
48.0 34.0 37.0 16.22 MB

NR1 Cloud Optimize allows you to Identify right-sizing opportunities and potential savings of your AWS, GCP, and Azure instances across your cloud environment.

Home Page: https://discuss.newrelic.com/t/cloud-optimizer-nerdpack/82936

License: Apache License 2.0

JavaScript 97.31% SCSS 2.69%
cloud optimize cloud-optimize cost aws nr1 azure gcp nerdpack nrlabs

nr1-cloud-optimize's Introduction

New Relic Open Source catalog project banner.

Optimizer (nr1-cloud-optimize)

CI GitHub release (latest SemVer including pre-releases) Snyk

This application is maintained by the New Relic Labs team. Connect with us directly by creating issues or starting a discussion in this repo.

Usage

This application offers comprehensive analysis of your environment through various integrations, such as Cloud Integrations, Infrastructure Agents, Kubernetes, and more. It provides detailed cost and performance metrics for each service, allowing you to gauge potential impacts on your environment and benefit from cost optimization suggestions.

Features

  • Historical Tracking: Enables comparison and analysis of data before and after major events, such as Black Friday.

  • Time Range Support: Allows isolation of costs during specific time periods.

  • Tag Filtering: Supports isolating costs by specific tags for more precise analysis.

  • Tuneable Suggestions System (Beta): Provides high-level insights and recommendations, aiding teams in decision-making.

Service Support

The following table outlines the services supported by the application across different cloud platforms:

Cloud Provider Supported Services
AWS EC2, RDS, API Gateway, ALB, ELB, SQS, Elasticsearch, ElastiCache, Lambda
Azure VMs
GCP VMs
Other Kubernetes (K8s)

Contributing and improving

We are open to all suggestions that will help to improve the analysis, suggestions, services and any other capability you can think off. Please raise an issue with as much detail as possible.

Screenshots

Screenshot #1 Screenshot #2 Screenshot #3

Open Source License

This project is distributed under the Apache 2 license.

Dependencies

Requires New Relic Infrastructure.

You'll get the best possible data out of this application if you also:

Getting started

First, ensure that you have Git and NPM installed. If you're unsure whether you have one or both of them installed, run the following command(s) (If you have them installed these commands will return a version number, if not, the commands won't be recognized):

git --version
npm -v

Next, install the NR1 CLI by going to this link and following the instructions (5 minutes or less) to install and setup your New Relic development environment.

Next, to clone this repository and run the code locally against your New Relic data, execute the following commands:

nr1 nerdpack:clone -r https://github.com/newrelic/nr1-cloud-optimize.git
cd nr1-cloud-optimize
nr1 nerdpack:serve

Visit https://one.newrelic.com/?nerdpacks=local, navigate to the Nerdpack, and ✨

Enabling this Nerdpack

This pack of visualizations is available via the New Relic Catalog.

To enable it in your account, go to Add Data > Apps and Visualzations and search for "Labs Widget Pack". Click the icon and subscribe this to your accounts.

Once subscribed you can browse to Apps -> Custom Visualizations to add any of the widgets to a dashboard.

Manual Deployment

If you need to customize the widgets in this pack, you can fork the code base and follow the instructions on how to Customize a Nerdpack. If you have a change you feel everyone can benefit from, please submit a PR!

Visit https://one.newrelic.com, navigate to the Nerdpack, and ✨

Community Support

New Relic hosts and moderates an online forum where you can interact with New Relic employees as well as other customers to get help and share best practices. Like all New Relic open source community projects, there's a related topic in the New Relic Explorers Hub. You can find this project's topic/threads here:

https://discuss.newrelic.com/t/cloud-optimizer-nerdpack/82936

Please do not report issues with Optimizer to New Relic Global Technical Support. Instead, visit the Explorers Hub for troubleshooting and best-practices.

Issues / Enhancement Requests

Issues and enhancement requests can be submitted in the Issues tab of this repository. Please search for and review the existing open issues before submitting a new issue.

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.

Contributing

Contributions are welcome (and if you submit a Enhancement Request, expect to be invited to contribute it yourself 😁). Please review our Contributors Guide.

Keep in mind that when you submit your pull request, you'll need to sign the CLA via the click-through using CLA-Assistant. If you'd like to execute our corporate CLA, or if you have any questions, please drop us an email at [email protected].

nr1-cloud-optimize's People

Contributors

aso1124 avatar aswanson-nr avatar austin-schaefer avatar crshanks avatar danielgolden avatar devfreddy avatar ericmittelhammer avatar jaesius avatar jbeveland27 avatar kav91 avatar lizbaker avatar michellosier avatar moonlightkomorebi avatar nr-opensource-bot avatar pathert avatar prototypicalpro avatar rudouglas avatar ryanv94 avatar semantic-release-bot avatar snyk-bot avatar stephengoodall avatar tangollama avatar timglaser avatar tyreer avatar woehrl01 avatar

Stargazers

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

Watchers

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

nr1-cloud-optimize's Issues

EC2 Instance Type Reporting Issue

The current instance type reported in Cloud Optimize does not match the current instance type in the AWS console. For example, Cloud Optimize is reporting the current instance type as r4.2xlarge when the EC2 console says it is r4.8xlarge. The r4.8xlarge has been running for several days so it should have reported in and been captured that the instance is no longer an r4.2xlarge.

Demonstrate projected utilization for suggested changes to gauge risk of change

Summary

While showing this off, a key stakeholder asked "whatever it recommends it should not put him at risk of under deployment".

Desired Behaviour

Could we include what the estimated cpu/memory load would be if an instance is right-sized to a suggested system.

Could we show (for an instance)... timeseries of utilization over xx period of time, and projected utilization over that same period of time if a suggested instance is put in place.

Possible Solution

Additional context

It is great it points on where you can save money but it does not give a gauge of the risk of underdeployment if a change is made.

Add discount multiplier configuration setting

Add discount multiplier configuration setting

It seems the ability to set a discount multiplier has been removed

Desired Behaviour

Ideally, the customer would be able to provide their own RI setup/Savings Plan info (on the AWS side of things at least), but in the meantime, adding back the discount multiplier at least allows the user to tweak the numbers they see to match what they are actually paying.

Additional context

This was available back in May and prior

[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 0 12 0 13

Fail #

❌ 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. 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

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-source-tools/tree/master/javascript/oss-template.

βœ… readme-starts-with-nr1-catalog-header #

The first 1 lines contain all of the requested patterns. (README.md). The README of a community plus project should have a NR1 Catalog header at the start of the README. If you already have a NR1 Catalog 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/.

βœ… readme-contains-security-section #

Contains a security section (README.md). New Relic recommends having a Security section in your README to address concerns such as vulnerability reporting. This security section should also contain a link to the security policy (found under the "Security" tab of the repository). For an example of this section, please see the NR1 Catalog Template. For more information please visit https://nerdlife.datanerd.us/new-relic/security-guidelines-for-publishing-source-code.

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

Contains a link to the security policy for this repository (README.md). New Relic recommends referencing the open source security policy (https://github.com/newrelic/<repo-name>/security/policy or ../../security/policy) in a Security section in the README. For an example of this, please see the NR1 Catalog Template. 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.

βœ… third-party-notices-file-exists #

Found file (THIRD_PARTY_NOTICES.md). A THIRD_PARTY_NOTICES.md file must be present to grant attribution to all dependencies being used by this project. 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.

βœ… github-actions-workflow-file-exists #

Found file (.github/workflows/catalog.yml). Any Community Plus project must integrate with GitHub actions. For more information please visit https://docs.google.com/document/d/1y644Pwi82kasNP5VPVjDV8rsmkBKclQVHFkz8pwRUtE/view.

βœ… nr1-catalog-config-file-exists #

Found file (catalog/config.json).

βœ… nr1-catalog-screenshots-directory-exists #

Found file (catalog/screenshots).

βœ… nr1-catalog-documentation-file-exists #

Found file (catalog/documentation.md).

βœ… package-scripts-present #

An eslint-check and eslint-fix npm script found in file (package.json). NPM scripts for ESLint (eslint-check and eslint-fix) are required to properly integrate with the nerdpack system.

There is no certificate created yet

Hey guys, we tried to run nr1 nerdpack:serve but we got this error

There is no certificate created yet.
Error: An error ocurred while performing the operation
    at CallocService._buildRequest (/usr/local/lib/newrelic-cli/node_modules/@datanerd/3pp-cli-utils/src/ServiceFacade.js:149:23)

But I didn't find anything related, could you help us to fix this?

Thanks

CPU Request Billing

CPU Billing for Kubernetes is based on CPU usage not requests

Summary

Our real cost for a Kubernetes pod is the amount of CPU it reserves as we have to pay for an EC2 instance that has enough CPU to accomodate all of the CPU requests. We'd like to see this reflected in the Cost Optimizer if possible.

AWS Windows EC2 instance Price Calculation

AWS Windows EC2 instance price calculation bug

Description

Observed for EC2 Windows R5.Large instance. It is highly possible that it is a common issue. AWS EC2 instance price depends also on the OS. It looks like cloud optimize calculates windows instance price as if it is a linux instance.

Steps to Reproduce

Expected Behaviour

Relevant Logs / Console output

Your Environment

  • NR1 CLI version used:
  • Browser name and version:
  • Operating System and version:

Additional context

NR1 library deprecation issues

Repolinter Report

This report was generated automatically by the Repolinter.

This Repolinter run generated the following results:

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

Warning #

Click to see rules

⚠️ nr1-lib-deprecation-tablerow-actions-icontype #

See the New Relic Developer docs for current API details https://developer.newrelic.com/components/table-row. For more information please visit newrelic/developer-website#1033. Below is a list of files or patterns that failed:

  • nerdlets/cloud-optimize-core/components/optimizers/workloads/list.js: Contains The iconType property of the actions object should not be present within a TableRow.

Passed #

Click to see rules

βœ… nr1-lib-deprecation-dropdown-label #

See the New Relic Developer docs for current API details https://developer.newrelic.com/components/dropdown. For more information please visit newrelic/developer-website#1033. All files passed this test.

βœ… nr1-lib-deprecation-accountpicker-onchange #

See the New Relic Developer docs for current API details https://developer.newrelic.com/components/account-picker. For more information please visit newrelic/developer-website#1033. All files passed this test.

βœ… nr1-lib-deprecation-icon-sizetype #

See the New Relic Developer docs for current API details https://developer.newrelic.com/components/icon. For more information please visit newrelic/developer-website#1033. All files passed this test.

βœ… nr1-lib-deprecation-entity-title-table-row-cell-value-reporting #

See the New Relic Developer docs for current API details https://developer.newrelic.com/components/entity-title-table-row-cell. For more information please visit newrelic/developer-website#1033. All files passed this test.

βœ… nr1-lib-deprecation-tooltip-classname #

See the New Relic Developer docs for current API details https://developer.newrelic.com/components/tooltip. For more information please visit newrelic/developer-website#1033. All files passed this test.

βœ… nr1-lib-deprecation-tooltip-style #

See the New Relic Developer docs for current API details https://developer.newrelic.com/components/tooltip. For more information please visit newrelic/developer-website#1033. All files passed this test.

NR1 library deprecation issues

Repolinter Report

This report was generated automatically by the Repolinter.

This Repolinter run generated the following results:

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

Fail #

❌ nr1-lib-deprecation-dropdown-label #

See the New Relic Developer docs for current API details https://developer.newrelic.com/components/dropdown. For more information please visit newrelic/developer-website#1033. Below is a list of files or patterns that failed:

  • nerdlets/cloud-optimize-core/components/workload-costs/add-cost.js: Contains The Dropdown label property is deprecated.
  • nerdlets/cloud-optimize-core/components/workload-costs/index.js: Contains The Dropdown label property is deprecated.

Warning #

Click to see rules

⚠️ nr1-lib-deprecation-tablerow-actions-icontype #

See the New Relic Developer docs for current API details https://developer.newrelic.com/components/table-row. For more information please visit newrelic/developer-website#1033. Below is a list of files or patterns that failed:

  • nerdlets/cloud-optimize-core/components/optimizers/workloads/list.js: Contains The iconType property of the actions object should not be present within a TableRow.

Passed #

Click to see rules

βœ… nr1-lib-deprecation-accountpicker-onchange #

See the New Relic Developer docs for current API details https://developer.newrelic.com/components/account-picker. For more information please visit newrelic/developer-website#1033. All files passed this test.

βœ… nr1-lib-deprecation-icon-sizetype #

See the New Relic Developer docs for current API details https://developer.newrelic.com/components/icon. For more information please visit newrelic/developer-website#1033. All files passed this test.

βœ… nr1-lib-deprecation-entity-title-table-row-cell-value-reporting #

See the New Relic Developer docs for current API details https://developer.newrelic.com/components/entity-title-table-row-cell. For more information please visit newrelic/developer-website#1033. All files passed this test.

βœ… nr1-lib-deprecation-tooltip-classname #

See the New Relic Developer docs for current API details https://developer.newrelic.com/components/tooltip. For more information please visit newrelic/developer-website#1033. All files passed this test.

βœ… nr1-lib-deprecation-tooltip-style #

See the New Relic Developer docs for current API details https://developer.newrelic.com/components/tooltip. For more information please visit newrelic/developer-website#1033. All files passed this test.

Unable to update the advanced config fields

Unable to adjust the configuration fields

When trying to adjust these fields, the input is not received. The field does not change, and the console shows the following message:
[Violation] 'input' handler took 243ms

Steps to Reproduce

Run the nerdpack, select the configuration menu option, and attempt to change a field value
NOTE: # ( Please be as specific as possible. )

Expected Behaviour

The fields would show the changed value and upon exit/save update the multiplier, inclusion period etc.

Screen Shot 2020-04-30 at 11 32 29 PM

Relevant Logs / Console output

[Violation] 'input' handler took 198ms
[Violation] 'input' handler took 194ms
[Violation] 'input' handler took 187ms
[Violation] 'input' handler took 195ms
[Violation] 'input' handler took 217ms
[Violation] 'input' handler took 186ms
[Violation] 'input' handler took 186ms
[Violation] 'input' handler took 184ms
[Violation] 'input' handler took 241ms
[Violation] 'input' handler took 221ms
[Violation] 'input' handler took 216ms
[Violation] 'input' handler took 253ms
[Violation] 'input' handler took 230ms
[Violation] 'input' handler took 244ms
[Violation] 'input' handler took 244ms
[Violation] 'input' handler took 260ms
[Violation] 'input' handler took 243ms
[Violation] 'input' handler took 248ms
[Violation] 'input' handler took 235ms
[Violation] 'input' handler took 234ms
[Violation] 'input' handler took 254ms
[Violation] 'input' handler took 238ms

Your Environment

  • NR1 CLI version used:
    $ nr1 --version
    @datanerd/nr1/1.22.2 darwin-x64 node-v10.16.3

  • Browser name and version:
    Chrome Version 81.0.4044.122 (Official Build) (64-bit)
    Firefox 75.0 (64-bit)

  • Operating System and version:
    MacOS Catalina

Additional context

Tracking: refactor nerdlets/cloud-optimize-apm/cloud-optimize-apm.js

nerdlets/cloud-optimize-apm/cloud-optimize-apm.js contains four linting errors that are currently addressed through disabling the checks. The appropriate remediation is to refactor the code. The issues are:

  • calling setState in the componentDidUpdate method
  • async resolver to a Promise in handleParentState
  • async resolver to a Promise in fetchContainerPerformanceData
  • async resolver to a Promise in fetchHostPerformance

Regardless of cloud provider, AWS instance types are suggested

When deployed from the NR App Catalog, the default cloud used for instance right size suggestions is not configurable. It is currently (2.1.0) set to "amazon" in the code.

Description

If the cloud provider is, say Azure, the suggested instance types are not Azure types, instead AWS types are provided:
image

Deploying manually allows the value to be set in the code: nerdlets/cloud-optimize-core/context/data.js, by changing the optimizationDefaults.defaultCloud string from 'amazon' to your cloud provider, e.g. 'azure'.

Steps to Reproduce

Deploy the nr1-cloud-optimize NR One application through the app catalog for an account where the hosts are in the Azure cloud.

Expected Behaviour

Azure right-size suggestions provided, when the original instances are also Azure instances.

Your Environment

NR1 CLI v1.22.2
Chrome v83
MacOS Catalina v10.15.5
Cloud Optimize release 2.1.0

Additional Context

The suggested types could be based on:

  • a single config option, through the UI
  • the most common cloud instance type
  • the existing instance cloud type: AWS instance > AWS instance, Azure instance > Azure instance

Include AWS Load balancers and EBS

NOTE: # Optmisation for unused Load balancer and unattached EBS volumes

Provide cost impact of unused Load balancer and unattached EBS volumes

NOTE: # Provide $ figures against Load balancers and EBS volumes that are unused

Filter list to choose what qualifies as Unused Load balancer and unattached EBS volumes similar to EC2 today.

NOTE: # Provide the ability to calculate the costs for unused LBs and unattached EBS volumes

Possible Solution

Additional context

Upgrade the project meta data to support new catalog commands

Add metadata to the repository that matches the example laid out here.

  • Add a config.json file to a catalog directory in the repo root, matching this format.
  • Move the /screenshots directory into catalog:
    • Update the screenshot file names (to match this format)
    • Update the screenshot links in the README.md.
  • Add the new header image to the top of README.md.
  • Add a documentation.md file to a catalog directory in the repo root, matching this format.
    • Update the relative paths in documentation.md to be absolute paths
  • N/A (Optional) If there's additional documentation referenced in the repo, add a additionalInfo.md file to a catalog directory in the repo root, matching this format.
  • Ensure the README.md commands section matches Justin's snippet.
  • Run npm start and let the CLI move the nr1.json
    • Edit that file to make sure the name and description make sense.

AWS Windows EC2 instance recommendation

AWS Windows EC2 instance suggestion bug. Additional checks required for the type of operating system in use.

Description

The current Windows Server is R5Large and the optimizer suggests r6g.medium. r6g.medium instances do not support windows operating system(checked for Ireland Region). There should be an additional control to check the operating system being in use for more accurate suggestions.

Steps to Reproduce

Expected Behaviour

Relevant Logs / Console output

Your Environment

  • NR1 CLI version used:
  • Browser name and version:
  • Operating System and version:

Additional context

Update copy to New Relic style guidelines

Summary

This request has a markup from New Relic's UI writer with copy changes to match New Relic's UI style guidelines and improve readability and usability.

Desired Behaviour

Markup document (internal access only): https://docs.google.com/document/d/10dWqR0vPF6q0r9UYhziW4xyHWdlVlZYBrUAX-KMG0a4/edit?usp=sharing

Possible Solution

Apply changes per the markup above.

Additional context

We need to make sure all the New Relic One applications we create and share publicly match our style guidelines and are as easy to understand and use as possible.

Add Entity column to Optimization Candidate view

Summary

I'd like to add the Entity Name to the Optimization Candidate view.

Desired Behaviour

Display an extra column next to hostname to show the entity name - as these are more meaningful than the private IP based names that AWS use by default.

Possible Solution

I have added a new column to the optimizationCandidate.js file and added the column to the NRQL query in utils.js and this seems to work:
image

Additional context

We use the display_name value in our newrelic-infra.yml as we use schedules to spin instances up and would prefer to see what "group" of ec2 server it was, eg. is it one of our web servers, or an app server (they run different groups of apps).

After adding that config, the value is stored as entityName so I'd like to be able to see it on the page.

The link that it takes you too is the same as hostname, it's just more human-friendly to see the entity name.

Let me know if you would like me to raise a PR for this if you think it would be useful for others.

Export Functionalty Removed

Summary

Previously, we were able to export the results into at least CSV to be loaded and analyzed offline and swizzled into various tools and reports. With the launch of the new tool, we cannot find a way to export this data.

Desired Behaviour

While viewing an optimization report, we should at least be able to export the existing view.

Possible Solution

A simple export button to export the current view in a simple format such as CSV

Additional context

We often have to export and analyze this data for various leadership reporting and commentary/planning purposes.

Unable to save Configuration

Description:

Unable to save a configuration change for all entities, as well as Workload, with the Catalog Cloud Optimize.

Steps to Reproduce

Change any element in the Configuration page (universal setting, or for a specific workload). Then select save. The save button then just spins and spins, never completing a save. Upon refresh, no values change.

Expected Behaviour

Upon save, configuration would be retained and new executions of Optimize would reflect the new config change.

Relevant Logs / Console output

Your Environment

Additional context

Please feel free to reach out to me asap with additional questions.

Can't resolve 'semantic-ui-react' - Error: The build failed

Description

Steps to Reproduce

nr1 --version
nr1 profiles:add --name lenskart --api-key xxxx-xxxx --region u
nr1 nerdpack:clone -r https://github.com/newrelic/nr1-cloud-optimize
cd nr1-cloud-optimize
nr1 nerdpack:serve

Expected Behaviour

Build shouldn't fail.

Relevant Logs / Console output

Nerdpack:

package.json:
βœ” name nr1-cloud-optimize
βœ” id 797b1174-1df8-4379-926a-61b5eb133734

Found and loaded 2 artifacts on nr1-cloud-optimize (797b1174-1df8-4379-926a-61b5eb133734) Nerdpack.
Artifacts:

Launchers:
βœ” cloud-optimize-launcher launchers/cloud-optimize-launcher/nr1.json

Nerdlets:
βœ” cloud-optimize-nerdlet nerdlets/cloud-optimize-nerdlet/nr1.json

Hash: 3c84706436a98863da6c1c8051553038a45eed47
Version: webpack 4.41.0
Child
Hash: 3c84706436a98863da6c
Time: 2474ms
Built at: 10/23/2019 8:18:22 PM
Asset Size Chunks Chunk Names
797b1174-1df8-4379-926a-61b5eb133734--cloud-optimize-nerdlet.js 256 KiB 797b1174-1df8-4379-926a-61b5eb133734--cloud-optimize-nerdlet [emitted] 797b1174-1df8-4379-926a-61b5eb133734--cloud-optimize-nerdlet
797b1174-1df8-4379-926a-61b5eb133734--cloud-optimize-nerdlet.js.map 151 KiB 797b1174-1df8-4379-926a-61b5eb133734--cloud-optimize-nerdlet [emitted] [dev] 797b1174-1df8-4379-926a-61b5eb133734--cloud-optimize-nerdlet
vendors797b1174-1df8-4379-926a-61b5eb133734--vendors.js 37.7 KiB vendors797b1174-1df8-4379-926a-61b5eb133734--vendors [emitted] vendors797b1174-1df8-4379-926a-61b5eb133734--vendors
vendors
797b1174-1df8-4379-926a-61b5eb133734--vendors.js.map 36.9 KiB vendors797b1174-1df8-4379-926a-61b5eb133734--vendors [emitted] [dev] vendors797b1174-1df8-4379-926a-61b5eb133734--vendors
Entrypoint 797b1174-1df8-4379-926a-61b5eb133734--cloud-optimize-nerdlet = vendors797b1174-1df8-4379-926a-61b5eb133734--vendors.js vendors797b1174-1df8-4379-926a-61b5eb133734--vendors.js.map 797b1174-1df8-4379-926a-61b5eb133734--cloud-optimize-nerdlet.js 797b1174-1df8-4379-926a-61b5eb133734--cloud-optimize-nerdlet.js.map
[../../../../usr/local/lib/newrelic-cli/node_modules/@babel/runtime/helpers/assertThisInitialized.js] /usr/local/lib/newrelic-cli/node_modules/@babel/runtime/helpers/assertThisInitialized.js 219 bytes {vendors797b1174-1df8-4379-926a-61b5eb133734--vendors} [built]
[../../../../usr/local/lib/newrelic-cli/node_modules/@babel/runtime/helpers/asyncToGenerator.js] /usr/local/lib/newrelic-cli/node_modules/@babel/runtime/helpers/asyncToGenerator.js 809 bytes {vendors
797b1174-1df8-4379-926a-61b5eb133734--vendors} [built]
[../../../../usr/local/lib/newrelic-cli/node_modules/@babel/runtime/helpers/classCallCheck.js] /usr/local/lib/newrelic-cli/node_modules/@babel/runtime/helpers/classCallCheck.js 196 bytes {vendors797b1174-1df8-4379-926a-61b5eb133734--vendors} [built]
[../../../../usr/local/lib/newrelic-cli/node_modules/@babel/runtime/helpers/createClass.js] /usr/local/lib/newrelic-cli/node_modules/@babel/runtime/helpers/createClass.js 596 bytes {vendors
797b1174-1df8-4379-926a-61b5eb133734--vendors} [built]
[../../../../usr/local/lib/newrelic-cli/node_modules/@babel/runtime/helpers/defineProperty.js] /usr/local/lib/newrelic-cli/node_modules/@babel/runtime/helpers/defineProperty.js 289 bytes {vendors797b1174-1df8-4379-926a-61b5eb133734--vendors} [built]
[../../../../usr/local/lib/newrelic-cli/node_modules/@babel/runtime/helpers/getPrototypeOf.js] /usr/local/lib/newrelic-cli/node_modules/@babel/runtime/helpers/getPrototypeOf.js 267 bytes {vendors
797b1174-1df8-4379-926a-61b5eb133734--vendors} [built]
[../../../../usr/local/lib/newrelic-cli/node_modules/@babel/runtime/helpers/inherits.js] /usr/local/lib/newrelic-cli/node_modules/@babel/runtime/helpers/inherits.js 505 bytes {vendors797b1174-1df8-4379-926a-61b5eb133734--vendors} [built]
[../../../../usr/local/lib/newrelic-cli/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js] /usr/local/lib/newrelic-cli/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js 343 bytes {vendors
797b1174-1df8-4379-926a-61b5eb133734--vendors} [built]
[../../../../usr/local/lib/newrelic-cli/node_modules/@babel/runtime/helpers/setPrototypeOf.js] /usr/local/lib/newrelic-cli/node_modules/@babel/runtime/helpers/setPrototypeOf.js 237 bytes {vendors797b1174-1df8-4379-926a-61b5eb133734--vendors} [built]
[../../../../usr/local/lib/newrelic-cli/node_modules/@babel/runtime/helpers/typeof.js] /usr/local/lib/newrelic-cli/node_modules/@babel/runtime/helpers/typeof.js 817 bytes {vendors
797b1174-1df8-4379-926a-61b5eb133734--vendors} [built]
[../../../../usr/local/lib/newrelic-cli/node_modules/@babel/runtime/regenerator/index.js] /usr/local/lib/newrelic-cli/node_modules/@babel/runtime/regenerator/index.js 49 bytes {vendors~797b1174-1df8-4379-926a-61b5eb133734--vendors} [built]
[./nerdlets/cloud-optimize-nerdlet/cloud-optimize.js] 18 KiB {797b1174-1df8-4379-926a-61b5eb133734--cloud-optimize-nerdlet} [built]
[./nerdlets/cloud-optimize-nerdlet/index.js] 2.29 KiB {797b1174-1df8-4379-926a-61b5eb133734--cloud-optimize-nerdlet} [built]
[nr1] external "NR1_EXTERNAL_LIB" 42 bytes {797b1174-1df8-4379-926a-61b5eb133734--cloud-optimize-nerdlet} [built]
[react] external "React" 42 bytes {797b1174-1df8-4379-926a-61b5eb133734--cloud-optimize-nerdlet} [built]
+ 17 hidden modules

ERROR in ./nerdlets/cloud-optimize-nerdlet/utils.js
Module not found: Error: Can't resolve 'graphql-tag' in '/Users/nirbhabbarat/newrelic/nr1-cloud-optimize/nerdlets/cloud-optimize-nerdlet'
 @ ./nerdlets/cloud-optimize-nerdlet/utils.js 26:0-30 162:27-30 164:9-12
 @ ./nerdlets/cloud-optimize-nerdlet/cloud-optimize.js
 @ ./nerdlets/cloud-optimize-nerdlet/index.js

ERROR in ./nerdlets/cloud-optimize-nerdlet/cloud-optimize.js
Module not found: Error: Can't resolve 'lodash' in '/Users/nirbhabbarat/newrelic/nr1-cloud-optimize/nerdlets/cloud-optimize-nerdlet'
 @ ./nerdlets/cloud-optimize-nerdlet/cloud-optimize.js 18:0-23 429:49-50 429:77-78
 @ ./nerdlets/cloud-optimize-nerdlet/index.js

ERROR in ./nerdlets/cloud-optimize-nerdlet/processor.js
Module not found: Error: Can't resolve 'lodash' in '/Users/nirbhabbarat/newrelic/nr1-cloud-optimize/nerdlets/cloud-optimize-nerdlet'
 @ ./nerdlets/cloud-optimize-nerdlet/processor.js 7:8-25
 @ ./nerdlets/cloud-optimize-nerdlet/cloud-optimize.js
 @ ./nerdlets/cloud-optimize-nerdlet/index.js

ERROR in ./nerdlets/cloud-optimize-nerdlet/components/optimizationCandidates.js
Module not found: Error: Can't resolve 'lodash' in '/Users/nirbhabbarat/newrelic/nr1-cloud-optimize/nerdlets/cloud-optimize-nerdlet/components'
 @ ./nerdlets/cloud-optimize-nerdlet/components/optimizationCandidates.js 17:0-23 45:29-30
 @ ./nerdlets/cloud-optimize-nerdlet/components/accountCards.js
 @ ./nerdlets/cloud-optimize-nerdlet/cloud-optimize.js
 @ ./nerdlets/cloud-optimize-nerdlet/index.js

ERROR in ./nerdlets/cloud-optimize-nerdlet/components/snapshots/snapshotList.js
Module not found: Error: Can't resolve 'lodash' in '/Users/nirbhabbarat/newrelic/nr1-cloud-optimize/nerdlets/cloud-optimize-nerdlet/components/snapshots'
 @ ./nerdlets/cloud-optimize-nerdlet/components/snapshots/snapshotList.js 10:0-23 28:20-21
 @ ./nerdlets/cloud-optimize-nerdlet/components/menuBar.js
 @ ./nerdlets/cloud-optimize-nerdlet/cloud-optimize.js
 @ ./nerdlets/cloud-optimize-nerdlet/index.js

ERROR in ./nerdlets/cloud-optimize-nerdlet/components/headerCosts.js
Module not found: Error: Can't resolve 'prop-types' in '/Users/nirbhabbarat/newrelic/nr1-cloud-optimize/nerdlets/cloud-optimize-nerdlet/components'
 @ ./nerdlets/cloud-optimize-nerdlet/components/headerCosts.js 9:0-35 311:10-19 312:14-23 313:9-18
 @ ./nerdlets/cloud-optimize-nerdlet/cloud-optimize.js
 @ ./nerdlets/cloud-optimize-nerdlet/index.js

ERROR in ./nerdlets/cloud-optimize-nerdlet/components/optimizationCandidates.js
Module not found: Error: Can't resolve 'react-json-to-csv' in '/Users/nirbhabbarat/newrelic/nr1-cloud-optimize/nerdlets/cloud-optimize-nerdlet/components'
 @ ./nerdlets/cloud-optimize-nerdlet/components/optimizationCandidates.js 16:0-44 259:29-40
 @ ./nerdlets/cloud-optimize-nerdlet/components/accountCards.js
 @ ./nerdlets/cloud-optimize-nerdlet/cloud-optimize.js
 @ ./nerdlets/cloud-optimize-nerdlet/index.js

ERROR in ./nerdlets/cloud-optimize-nerdlet/components/pricingSelector.js
Module not found: Error: Can't resolve 'semantic-ui-react' in '/Users/nirbhabbarat/newrelic/nr1-cloud-optimize/nerdlets/cloud-optimize-nerdlet/components'
 @ ./nerdlets/cloud-optimize-nerdlet/components/pricingSelector.js 11:0-64 92:33-38 93:37-41 105:29-34 111:51-56 117:29-33 127:29-33 142:44-52 154:31-35 169:46-54 181:31-35 196:47-55
 @ ./nerdlets/cloud-optimize-nerdlet/components/menuBar.js
 @ ./nerdlets/cloud-optimize-nerdlet/cloud-optimize.js
 @ ./nerdlets/cloud-optimize-nerdlet/index.js

ERROR in ./nerdlets/cloud-optimize-nerdlet/components/menuBar.js
Module not found: Error: Can't resolve 'semantic-ui-react' in '/Users/nirbhabbarat/newrelic/nr1-cloud-optimize/nerdlets/cloud-optimize-nerdlet/components'
 @ ./nerdlets/cloud-optimize-nerdlet/components/menuBar.js 11:0-58 147:33-37 155:29-33 161:43-51 174:30-34 180:57-61 186:42-50 199:30-35 200:37-41 214:30-34 234:31-36 235:37-41 249:30-34
 @ ./nerdlets/cloud-optimize-nerdlet/cloud-optimize.js
 @ ./nerdlets/cloud-optimize-nerdlet/index.js

ERROR in ./nerdlets/cloud-optimize-nerdlet/components/optimizationCandidates.js
Module not found: Error: Can't resolve 'semantic-ui-react' in '/Users/nirbhabbarat/newrelic/nr1-cloud-optimize/nerdlets/cloud-optimize-nerdlet/components'
 @ ./nerdlets/cloud-optimize-nerdlet/components/optimizationCandidates.js 15:0-63 60:33-38 61:37-43 73:64-68 95:29-34 101:55-60 107:29-34 116:29-34 122:29-34 128:46-51 134:48-53 140:37-42 146:37-42 152:43-48 159:35-40 166:31-36 172:57-62 178:59-64 184:49-54 190:51-56 222:33-38 224:37-43 244:29-34 276:47-52 282:29-34 292:29-34 298:29-34 304:29-34 314:38-43 324:47-52 334:50-55 344:52-57 354:51-56 364:40-45 374:39-44 384:46-51 394:42-47 404:55-60 414:52-57 424:45-50 435:37-42 443:33-38 461:57-61 468:36-41 474:69-74 480:72-77 486:78-83 492:77-82 498:51-56 504:50-55 510:57-62 516:123-128 525:176-181 531:123-128
 @ ./nerdlets/cloud-optimize-nerdlet/components/accountCards.js
 @ ./nerdlets/cloud-optimize-nerdlet/cloud-optimize.js
 @ ./nerdlets/cloud-optimize-nerdlet/index.js

ERROR in ./nerdlets/cloud-optimize-nerdlet/components/config.js
Module not found: Error: Can't resolve 'semantic-ui-react' in '/Users/nirbhabbarat/newrelic/nr1-cloud-optimize/nerdlets/cloud-optimize-nerdlet/components'
 @ ./nerdlets/cloud-optimize-nerdlet/components/config.js 13:0-94 146:33-38 148:37-41 154:53-57 167:29-34 173:56-61 180:29-33 187:29-33 203:58-63 220:99-106 226:30-34 242:53-58 259:99-106 265:30-34 281:54-59 292:31-35 308:57-62 319:31-35 335:56-61 346:31-35 362:55-60 379:138-145 385:30-34 400:54-62 422:72-79 428:30-34 444:50-55 455:31-35 471:53-58 488:117-122 494:29-35
 @ ./nerdlets/cloud-optimize-nerdlet/components/menuBar.js
 @ ./nerdlets/cloud-optimize-nerdlet/cloud-optimize.js
 @ ./nerdlets/cloud-optimize-nerdlet/index.js

ERROR in ./nerdlets/cloud-optimize-nerdlet/components/headerCosts.js
Module not found: Error: Can't resolve 'semantic-ui-react' in '/Users/nirbhabbarat/newrelic/nr1-cloud-optimize/nerdlets/cloud-optimize-nerdlet/components'
 @ ./nerdlets/cloud-optimize-nerdlet/components/headerCosts.js 10:0-81 26:33-40 37:29-38 48:29-34 51:37-46 63:30-39 69:144-149 72:37-46 84:30-39 90:141-146 93:37-46 105:30-39 111:152-157 112:37-41 132:29-34 138:63-68 144:29-34 150:29-33 158:29-33 164:210-214 170:138-142 176:97-101 182:138-142 188:29-33 194:134-138 200:89-93 206:281-285 212:137-141 230:29-33 239:29-34 242:37-41 248:31-35 259:32-36 271:30-35 274:37-41 280:31-35 291:32-36
 @ ./nerdlets/cloud-optimize-nerdlet/cloud-optimize.js
 @ ./nerdlets/cloud-optimize-nerdlet/index.js

ERROR in ./nerdlets/cloud-optimize-nerdlet/components/accountCards.js
Module not found: Error: Can't resolve 'semantic-ui-react' in '/Users/nirbhabbarat/newrelic/nr1-cloud-optimize/nerdlets/cloud-optimize-nerdlet/components'
 @ ./nerdlets/cloud-optimize-nerdlet/components/accountCards.js 8:0-79 30:33-40 42:29-35 49:29-35 101:122-126 135:46-50 145:35-39 157:31-35 194:34-38 200:31-36 208:31-36 214:31-36 220:31-36 226:32-37 232:43-48 238:44-49 244:31-36 250:31-36 256:49-54 262:115-120 268:121-126 274:31-36 280:45-50 286:112-117 292:118-123 298:31-36 305:42-47 312:105-110 319:112-117 325:31-36 331:31-36 341:233-237
 @ ./nerdlets/cloud-optimize-nerdlet/cloud-optimize.js
 @ ./nerdlets/cloud-optimize-nerdlet/index.js

ERROR in ./nerdlets/cloud-optimize-nerdlet/components/snapshots/snapshotList.js
Module not found: Error: Can't resolve 'semantic-ui-react' in '/Users/nirbhabbarat/newrelic/nr1-cloud-optimize/nerdlets/cloud-optimize-nerdlet/components/snapshots'
 @ ./nerdlets/cloud-optimize-nerdlet/components/snapshots/snapshotList.js 8:0-54 88:67-72 90:37-41 96:90-94 109:29-34 115:47-52 122:79-83 128:50-54
 @ ./nerdlets/cloud-optimize-nerdlet/components/menuBar.js
 @ ./nerdlets/cloud-optimize-nerdlet/cloud-optimize.js
 @ ./nerdlets/cloud-optimize-nerdlet/index.js

ERROR in ./nerdlets/cloud-optimize-nerdlet/components/snapshots/snapshotCard.js
Module not found: Error: Can't resolve 'semantic-ui-react' in '/Users/nirbhabbarat/newrelic/nr1-cloud-optimize/nerdlets/cloud-optimize-nerdlet/components/snapshots'
 @ ./nerdlets/cloud-optimize-nerdlet/components/snapshots/snapshotCard.js 11:0-63 92:33-39 122:35-40 124:39-45 151:31-36 157:50-55 179:103-108 186:31-36 192:31-36 198:31-36 204:50-55 210:58-63 216:31-36 222:31-36 240:78-83 269:33-38 271:37-41 284:29-34 290:165-170
 @ ./nerdlets/cloud-optimize-nerdlet/components/accountCards.js
 @ ./nerdlets/cloud-optimize-nerdlet/cloud-optimize.js
 @ ./nerdlets/cloud-optimize-nerdlet/index.js

ERROR in ./nerdlets/cloud-optimize-nerdlet/components/snapshots/snapshotTable.js
Module not found: Error: Can't resolve 'semantic-ui-react' in '/Users/nirbhabbarat/newrelic/nr1-cloud-optimize/nerdlets/cloud-optimize-nerdlet/components/snapshots'
 @ ./nerdlets/cloud-optimize-nerdlet/components/snapshots/snapshotTable.js 11:0-50 71:33-38 85:29-34 91:29-34 97:29-34 109:48-53 115:41-46 121:42-47 127:29-34 133:29-34 139:47-52 145:127-132 151:133-138 157:29-34 163:43-48 169:123-128 175:129-134 181:29-34 188:40-45 195:115-120 202:122-127 208:29-34 214:29-34 242:30-36
 @ ./nerdlets/cloud-optimize-nerdlet/components/snapshots/snapshotList.js
 @ ./nerdlets/cloud-optimize-nerdlet/components/menuBar.js
 @ ./nerdlets/cloud-optimize-nerdlet/cloud-optimize.js
 @ ./nerdlets/cloud-optimize-nerdlet/index.js

Child
Hash: 1c8051553038a45eed47
Time: 1676ms
Built at: 10/23/2019 8:18:21 PM
Asset Size Chunks Chunk Names
797b1174-1df8-4379-926a-61b5eb133734--styles.css 1.55 KiB 797b1174-1df8-4379-926a-61b5eb133734--styles [emitted] 797b1174-1df8-4379-926a-61b5eb133734--styles
797b1174-1df8-4379-926a-61b5eb133734--styles.css.map 1.96 KiB 797b1174-1df8-4379-926a-61b5eb133734--styles [emitted] [dev] 797b1174-1df8-4379-926a-61b5eb133734--styles
797b1174-1df8-4379-926a-61b5eb133734--styles.js 4.33 KiB 797b1174-1df8-4379-926a-61b5eb133734--styles [emitted] 797b1174-1df8-4379-926a-61b5eb133734--styles
797b1174-1df8-4379-926a-61b5eb133734--styles.js.map 3.88 KiB 797b1174-1df8-4379-926a-61b5eb133734--styles [emitted] [dev] 797b1174-1df8-4379-926a-61b5eb133734--styles
Entrypoint 797b1174-1df8-4379-926a-61b5eb133734--styles = 797b1174-1df8-4379-926a-61b5eb133734--styles.css 797b1174-1df8-4379-926a-61b5eb133734--styles.js 797b1174-1df8-4379-926a-61b5eb133734--styles.css.map 797b1174-1df8-4379-926a-61b5eb133734--styles.js.map
[./tmp/797b1174-1df8-4379-926a-61b5eb133734-styles.1571842099952.scss] 39 bytes {797b1174-1df8-4379-926a-61b5eb133734--styles} [built]
[?02cb] css /usr/local/lib/newrelic-cli/node_modules/css-loader/dist/cjs.js??ref--5-1!/usr/local/lib/newrelic-cli/node_modules/postcss-loader/src??postcss!/usr/local/lib/newrelic-cli/node_modules/fast-sass-loader/lib!./tmp/797b1174-1df8-4379-926a-61b5eb133734-styles.1571842099952.scss 76 bytes {797b1174-1df8-4379-926a-61b5eb133734--styles}
[?4730] css /usr/local/lib/newrelic-cli/node_modules/css-loader/dist/cjs.js??ref--5-1!/usr/local/lib/newrelic-cli/node_modules/postcss-loader/src??postcss!/usr/local/lib/newrelic-cli/node_modules/fast-sass-loader/lib!./tmp/797b1174-1df8-4379-926a-61b5eb133734-styles.1571842099952.scss (1) 1.4 KiB {797b1174-1df8-4379-926a-61b5eb133734--styles}
Child mini-css-extract-plugin ../../../../usr/local/lib/newrelic-cli/node_modules/css-loader/dist/cjs.js??ref--5-1!../../../../usr/local/lib/newrelic-cli/node_modules/postcss-loader/src/index.js??postcss!../../../../usr/local/lib/newrelic-cli/node_modules/fast-sass-loader/lib/index.js!tmp/797b1174-1df8-4379-926a-61b5eb133734-styles.1571842099952.scss:
Entrypoint mini-css-extract-plugin = *
[../../../../usr/local/lib/newrelic-cli/node_modules/css-loader/dist/cjs.js?!../../../../usr/local/lib/newrelic-cli/node_modules/postcss-loader/src/index.js?!../../../../usr/local/lib/newrelic-cli/node_modules/fast-sass-loader/lib/index.js!./tmp/797b1174-1df8-4379-926a-61b5eb133734-styles.1571842099952.scss] /usr/local/lib/newrelic-cli/node_modules/css-loader/dist/cjs.js??ref--5-1!/usr/local/lib/newrelic-cli/node_modules/postcss-loader/src??postcss!/usr/local/lib/newrelic-cli/node_modules/fast-sass-loader/lib!./tmp/797b1174-1df8-4379-926a-61b5eb133734-styles.1571842099952.scss 1.74 KiB {mini-css-extract-plugin} [built]
[../../../../usr/local/lib/newrelic-cli/node_modules/css-loader/dist/runtime/api.js] /usr/local/lib/newrelic-cli/node_modules/css-loader/dist/runtime/api.js 2.35 KiB {mini-css-extract-plugin} [built]
βœ– Error: The build failed.
You can run this command with "--verbose" for more info.

Your Environment

  • npm --version 3.10.8
  • git --version git version 2.10.2
  • nr1 --version @datanerd/nr1/1.2.2 darwin-x64 node-v10.16.3
  • MacOS Mojave 10.14.6 (18G103)

Cloud Optimizer not reporting data and reporting console error "We're sorry, but that query is a little too big..."

I am deploying Cloud Optimizer on one of my customer's sub-account. everything goes well until we run the app but it does not pick up any of their Azure instances integrated to their account. One of the errors I see in the browser console is:

"We're sorry, but that query is a little too big..."

We believe the problem has to do with how big the customer environment is and our platform not being able to handle the volume of the results produced by the queries run by the application. In order to reproduce it, you would probably need an environment. as big as the one we are seeing the problem.

We expect at some point that our platform wouldn't break with this volume of data and be able to handle all the instances on our customer's environment.

Here is the console output:
image

get instance data error
Array(1)
0:
locations: [{…}]
message: "We're sorry, but that query is a little too big. If using TIMESERIES, try fewer buckets and if faceting, reduce the LIMIT. Contact [email protected] for further assistance."
path: (3) ["actor", "account", "system"]
proto: Object
length: 1
proto: Array(0)

We found a way to make it work and give us data back. Not sure if this is the best fix but here we go just in case :
we just changed the NRQL in the …/nr1-cloud-optimize/nerdlets/shared/lib/utils.js file, on line 54, from the original”LIMIT 2000" to a lower limit that does not break, in my case was 198 for non prod and 148 for prod accounts.
This gives me some good data but my doubt now is how this would affect the quality of the results. Any Ideas or advice would be greatly appreciated.

  • NR1 CLI version used: @datanerd/nr1/1.10.10 darwin-x64 node-v10.16.3
  • Browser name and version: ChromeVersion 78.0.3904.108 (Official Build) (64-bit)
  • Operating System and version: Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT 2019; root:xnu-4903.271.2~2/RELEASE_X86_64 x86_64

[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 3 0 9 0 12

Fail #

❌ readme-starts-with-nr1-catalog-header #

The README of a community plus project should have a NR1 Catalog header at the start of the README. If you already have a NR1 Catalog header and this rule is failing, your header may be out of date. 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 1 lines do not contain the pattern(s): Open source NR1 Catalog header (see https://opensource.newrelic.com/oss-category).
    • πŸ”¨ Suggested Fix: prepend [![New Relic One Catalog Project header](https://github.com/newrelic/opensource-website/raw/master/src/images/categories/New_Relic_One_Catalog_Project.png)](https://opensource.newrelic.com/oss-category/#new-relic-one-catalog-project) to file

❌ readme-contains-security-section #

Doesn't contain a security section (README.md). New Relic recommends having a Security section in your README to address concerns such as vulnerability reporting. This security section should also contain a link to the security policy (found under the "Security" tab of the repository). For an example of this section, please see the NR1 Catalog Template. For more information please visit https://nerdlife.datanerd.us/new-relic/security-guidelines-for-publishing-source-code.

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

Doesn't contain a link to the security policy for this repository (README.md). New Relic recommends referencing the open source security policy (found under the "Security" tab of the repository) in a Security section in the README. For an example of this, please see the NR1 Catalog Template. For more information please visit https://nerdlife.datanerd.us/new-relic/security-guidelines-for-publishing-source-code.

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-source-tools/tree/master/javascript/oss-template.

βœ… 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.

βœ… third-party-notices-file-exists #

Found file (THIRD_PARTY_NOTICES.md). A THIRD_PARTY_NOTICES.md file must be present to grant attribution to all dependencies being used by this project. 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.

βœ… github-actions-workflow-file-exists #

Found file (.github/workflows/pr.yml). Any Community Plus project must integrate with GitHub actions. For more information please visit https://docs.google.com/document/d/1y644Pwi82kasNP5VPVjDV8rsmkBKclQVHFkz8pwRUtE/view.

βœ… nr1-catalog-config-file-exists #

Found file (catalog/config.json).

βœ… nr1-catalog-screenshots-directory-exists #

Found file (catalog/screenshots).

βœ… nr1-catalog-documentation-file-exists #

Found file (catalog/documentation.md).

βœ… package-scripts-present #

An eslint-check and eslint-fix npm script found in file (package.json). NPM scripts for ESLint (eslint-check and eslint-fix) are required to properly integrate with the nerdpack system.

Exception on RDS Cloud Optimize load: `ETA Oct 15`

Description

RDS Cloud Optimize app doesn't work. Trying to open it results in infinite load with text:
"Fetching Entities
Entity data 100.00%"
image

Steps to Reproduce

See Slack link for reference

Open Optimize Amazon RDS Entities application in NewRelic UI

Expected Behaviour

Application launched, data is shown like for "Optimize your instances and hosts."

Relevant Logs / Console output

Java console output:

context.js:337 Uncaught (in promise) TypeError: Cannot read property 'includes' of null
    at context.js:337
    at Array.forEach (<anonymous>)
    at context.js:317
    at u (runtime.js:63)
    at Generator._invoke (runtime.js:293)
    at Generator.next (runtime.js:118)
    at n (asyncToGenerator.js:3)
    at s (asyncToGenerator.js:25)

Your Environment

  • NR1 CLI version used:
  • Browser name and version: Chrome or Firefox latest
  • Operating System and version: Ubuntu 21.04

Additional context

Cloud Optimize times out

Workload and Collections created as directed (~1,000 hosts) but 'Analyze Run', runs for 15-20 minutes and spits out a FAILED message. No other errors or failure messages.

Add the ability to sort by cloud provider

Summary

You can currently group my providerAccountName, but as an added step, it would be helpful if you could then sort and/ or filter by provider.

Desired Behaviour

The ability to sort and filter by provider so that all AWS, GCP, and Azure accounts are grouped next to each other in alphabetical order, or filtered so that only accounts for one particular cloud provider are shown.

Additional context

Some of our larger customers have a large number of cloud accounts under a single New Relic account; many of them are only responsible for one cloud provider and would like the ability to sort and/or filter based on that one cloud provider.

Export optimization candidates to CSV

Allow export to CSV

In earlier releases of the application it was possible to export the optimization candidates to CSV. This was a useful feature that I would like to see reinstated.

Desired Behaviour

Reinstate the export to CSV button that allowed the current list of optimization candidates and their data to be exported.
image

Additional context

It was present in v1.1.0.

Apply Time Picker for refreshing the Charts

NOTE: # Time Picker syncing and better Filters

Sync the Charts to be refreshed based on NR1 time picker, Filterable Host/App/Tags instead of search queries.

NOTE: # Refresh charts based on Time picker selection, Ability to filter based on drop downs

Refresh the Optimisation charts based on NR1 time picker, Ability to filter based on drop downs instead of Queries that need to be validated.

NOTE: # Refresh the Optimisation charts based on NR1 time picker, Ability to filter based on drop downs instead of Queries that need to be validated.
TIP: # ( Do NOT give us access or passwords to your New Relic account or API keys! )

Possible Solution

Additional context

Cache host data for quicker reload

Summary

Users often click the back button or in some other way navigate out of Cloud Optimize, and in a large environment, it can take minutes for it to reload all of the host data.

Desired Behaviour

Host data is cached for X number of minutes/hours with a button in the UI to clear the cache

Possible Solution

Browser side caching

Please Add Requirements for Node.js

Summary

Supported node.js versions needed in the readme

Desired Behaviour

Can someone add a blurb in the readme for the node.js requirement? Currently it requires node versions 10 or 12 (v8 doesn't work), but it's not stated in the Getting Started section of the readme. It should also come with a link to some site, nodejs.org or something similar, to show them how for their particular platform.

Possible Solution

Additional context

Matched Instance column doesn't work for CSV export

Description

When running Export Data from the Optimization Candidates screen, the output does not open correctly. this is because "matchedInstance" is a JSON object so the commas throw off the CSV format.

Steps to Reproduce

Click "Show Optimization Candidates"
Click "Export Data"
Open export.csv in Excel
See that the columns stop lining up after "matchedInstance".

Expected Behaviour

Columns should line up with the header.

Relevant Logs / Console output

See how the columns go wrong after "region"
image

Your Environment

  • NR1 CLI version used: datanerd/nr1/1.2.2 win32-x64 node-v10.16.3
  • Browser name and version: Chrome 79.0.3945.88
  • Operating System and version: Windows 10 v1903

Additional context

Not sure what data is supposed to be displayed there but I suggest it would just show the "type" value - will submit a PR for this accordingly, but feel free to change it if you want different information in there

[3rd Party apps] Cost data not available for Amazon RDS

Description

The cloud Optimizer is not showing any data for an Amazon RDS entities or on the Workloads section

Assessment

The issue here with the cost is maybe only a configuration issue. There is something not communicating to identify the customers engines to grab costs from an API so no calculations can be rendered.

Steps to Reproduce

On the Amazon RDS entities, it show 21 entities but when we click , there is no data
image
image

When clicking on the workload section, we can choose the dedicated workload created for the occasion but it ask to enter manualy the costs.
image

Expected

We were expected to get the cost data automatically

Update eslint

rm -r node_modules
npm uninstall eslint
npm install --save-dev eslint

Now we can no longer view cost analysis.

We had an operational cost analysis of the Google Cloud environment. Now we can no longer view cost analysis.

Description

[NOTE]: We had an operational cost analysis of the Google Cloud environment. Now we can no longer view cost analysis.

Steps to Reproduce

[NOTE]: # We create the Workload and all the steps below:
Create the workload of entities to optimize
Create a collection of workload(s) to target
Click the 'Run' action in the table row to optimize your collection
Click 'Results' to view your optimization history
Improve your stack how you see fit

Expected Behaviour

In the tab it ishow that it is complete, but when we click on the result, it does not show cost analysis.

Firefox issue for first run of Cloud Optimize

Firefox issue for first run of Cloud Optimize

First run of the Cloud Optimizer results in everything running hard to the right.

The Cloud Optimize app in NR1 appears to have an overflow tag, that when removed, fixes the issue. Customer is seeing it as he tries to run it for the first time. To double check I used Demotron and saw the same result, including an incognito window. Please see screenshots.
image (3) (1)
image (4) (1)

Separate ec2 on-demand vs spot

Summary

Currently the cloud optimize can provide optimization insight on ec2 regardless or their type.
It would be nice to get valid optimization based on ec2 type (spot/on-demand) since they don't cost the same and spots are already cost optimized

Desired Behaviour

Possible Solution

Additional context

Filter out container entities

Filter out container entities by default

If a customer is currently running a number of containers in, for example, AWS Fargate, Cloud Optimize will list those entities. Given the dynamic nature here, this can result in thousands of entities being displayed that the user must scroll through/sort before getting to useful information.

Desired Behaviour

Entities with no optimization recommendation should be hidden by default.

Show Name tag from AWS instead of hostname

Show Name tag instead of hostname

One of the default tags AWS (and I assume other cloud providers as well) provides for an instance is Name; it is also one of the tags commonly used by customers when following tagging best practices to categorize and later more easily identify their instances. Currently, Cloud Optimize only shows the hostname of an instance rather than its name, if available.

Desired Behaviour

if instance.Name != None:
name = instance.Name
else:
name = hostname

Additional context

I understand a multi-cloud approach has been taken which limits the ability to use certain cloud-specific data like this, but for this particular use case, I think it is important enough to implement.

Provide some inline high level documentation

Optimize for the user who launches for the first time, answer questions like:

  • basic logic for identifying excessive cloud spend/overprovisioning
  • selecting a price list
  • how does the "optimize by" slider work?
  • providing a discount rate

Include CPU and Memory values of Suggested Instance in Optimisation Candidates

Currently, the optimisation candidate view shows the suggestedInstanceType, and clicking to see alternatives shows the CPU/Memory of those, but I can't see the CPU/Memory of the suggested type.

Summary

I'd like to ad 2 columns to the Optimisation Candidates view to show the CPU/Memory of the suggested instance type.

Desired Behaviour

See the CPU/Memory of the suggested Instance Type in the next two columns.

Possible Solution

Will add a PR for this. Alternatively, maybe the suggested instance could be included in the "alternative" modal as that view shows the CPU/Memory for the alternatives

Potential savings identified for non-optimized instances

Potential savings for instances are being added to the summary bar, tiles and instance tables when instances do not meet optimization criteria.

Steps to Reproduce

Using the default 50% CPU AND 50% Memory filter, when viewing the instances I'm seeing the potential savings column (on demand) listing the full cost of the instance. These potential costs are being being added to the summary bar and tiles (for example account tile).

image

Expected Behaviour

These potential savings should not appear in the instances table or be aggregated at the group or app levels either.

Environment

  • NR1 CLI v1.22.2
  • Chrome v83
  • MacOS Catalina v10.15.5
  • Cloud Optimize release 2.1.0

Additional context

I've identified a fix and will submit a PR shortly.

No Cost Recommendations for RDS

Description

I can see usage and cost data for RDS instances but no recommendations are made even for heavily underutilized instances.

Steps to Reproduce

Create a workload with an RDS instance and Analyze it with Cloud Optimize.

Expected Behavior

I expect Cloud Optimize to advise on scaling a cluster or instance down if it's being underutilized.

Relevant Logs / Console output

image

With CPU/memory and storage numbers so low I must be able to scale down some of these instances.

Your Environment

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.