Coder Social home page Coder Social logo

newrelic / nr1-tag-improver Goto Github PK

View Code? Open in Web Editor NEW
2.0 19.0 13.0 1.83 MB

NR1 Tag Improver helps you set tagging policy for all entities across your New Relic One accounts, audit where you are and aren’t meeting that policy, and bulk-edit custom tags - all in one UI.

Home Page: https://github.com/newrelic/nr1-tag-improver/discussions

License: Apache License 2.0

JavaScript 97.01% SCSS 2.99%
nrlabs nrlabs-viz

nr1-tag-improver's Introduction

New Relic One Catalog Project header

Tag Improver

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

About this Nerdpack

Tag Improver is here to help you get maximum value from New Relic One by simplifying the process of creating and managing a good tagging strategy.

Define the important entity tags for your environment, report on coverage, and view overall tag usage across everything you own.

What can Tag Improver do for you

Report on the coverage of key tags across your portfolio based on an editable tag schema

Tag Improver introduces the concept of “tag policies” which define a set of tags and their enforcement level within an account. Users can specify whether a tag is Required or Optional. Only tags that are identified as Required will be considered when assessing tag policy compliance. As a convenience, we provide you with a default tag policy on deployment of Tag Improver that you may edit to better fit and drive your organization’s tagging strategy.

View tag policy report

Explore the full set of tag key:values in use across your account

In the Tag Analyzer tab, users can view and analyze all of the tags currently in use for a given entity type in their selected account(s), including those defined in the tag policy but not currently defined for any entities. Tag Analyzer displays all tags in use across the entities of a specific entity type, not just those defined in the tag policy, providing a consolidated and complete view.

With the v1.1 release, users can now seamlessly move from identifying a cohort of entities with a particular value for a tag (or no value at all if undefined) in the Tag Analyzer tab and then operate on those entities in the Entities tab. This new and convenient workflow makes closing coverage gaps and enforcing an organization’s tag policy easy. Some of the other benefits & improvements include:

  • Identifying high-cardinality tags and inspecting for duplicate or redundant values
  • Identifying and managing duplicate or redundant tag keys (ex. “Environment” vs. “environment”)
  • Identifying non-policy tags with high coverage to incorporate into the tag policy

Explore all tags used across your accounts

Report the tags in use (and missing) from each entity, and manually manage tags in bulk

In the Policy tab, you can define a policy for tag governance across your account. In the Tag Analyzer tab, you can view adherence to that coverage and values in use. In the Entities tab, it all comes together. As the name indicates, the Entities tab provides an entity-centric view of tags and tag policy coverage, along with the ability to add, modify, or remove tags or values on those entities.

See entity tag status

Customizing the Tag Policy

Users can edit the tagging policy in the New Relic UI but those changes are only visible to the individual user. To customize the default policy, follow these instructions before deploying the app to your account(s).

The Policy report is driven by a policy schema defined in tag-schema.js

First, define the set of required and optional tags for your environment. Edit tag-schema.js to reflect your policy.

Each object in the schema JSON should have:

  • key - the actual tag key as applied to entities in New Relic
  • enforcement - the schema enforcement level from TAG_SCHEMA_ENFORCEMENT (controls presentation on Overview tab)
  • label - human-readable name of the tag, generally the same or a more verbose version of key
  • purpose - optional, more detailed description of usage or provenance for the tag value

When done, follow the instructions above under Enabling this App to deploy your changes to your account.

Caveats

As with anything, a few caveats:

Tag Improver currently does not recognize the mutability of tags. Attempts to add or edit an immutable tag will result in creating a new tag key but scoped to the user. A future release of Tag Improver is planned to address and remedy this behavior. A manual refresh Tag Improver may be needed to reflect some changes implemented (bulk edit actions) Tag Improver, like many Nerdpacks, employs Nerdstore for storage needs; at this time, tag policies are user-scoped. This limitation will be addressed in a future release of Tag Improver or other tag management functionality in NR1.

What do you need to make this work?

Access to New Relic One and a Full Stack Observability subscription.

Editing tags requires a Full Platform User-level account.

Enabling this App

This App is available via the New Relic Catalog.

To enable it in your account:

  1. go to Add Data > Apps and Visualzations and search for "Tag Improver"
  2. Click the Tag Improver card, and then click the Add this App button to add it to your account(s)
  3. Click Open App to launch the app (note: on the first time accessing the app, you may be prompted to enable it)

Once you have added your accounts, you can also open the app by:

  1. Open the Apps left-hand navigation menu item (you may need to click on the Add More ellipsis if it doesn't show up by default)
  2. In the Your Apps section, locate and click on the Tag Improver card to open the app

Manual Deployment

If you need to customize the app, fork the codebase 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!

Support

This project is actively maintained by the New Relic Labs team. Connect with us directly by creating issues or asking questions in the discussions section of this repo.

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

New Relic has open-sourced this project, which is provided AS-IS WITHOUT WARRANTY OR DEDICATED SUPPORT.

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 encouraged! If you submit an enhancement request, we'll invite you to contribute the change 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].

Open source license

This project is distributed under the Apache 2 license.

nr1-tag-improver's People

Contributors

amit-y avatar aso1124 avatar aswanson-nr avatar jbeveland27 avatar jpconway avatar julianocera avatar michellosier avatar nr-opensource-bot avatar robin-law avatar rudouglas avatar shahramk avatar tabathadelane avatar tanben avatar tangollama avatar tyreer avatar

Stargazers

 avatar  avatar

Watchers

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

nr1-tag-improver's Issues

Provide a coverage percentage, broken down by entity type

Summary

Feedback from client is, it's great that we can pick domains like APM, Infra etc. However the way they think about their environment + tagging is by entity. So they would like to see the tag coverage % by entity type. For example, 80% of EC2 instances have label.Owner but only 10% of RDS instances.

Desired Behaviour

Be able to break down the coverage a policy by entity type. For example, if we have a policy like label.Owner is required, we'd like to see how that coverage breaks down across entity type i.e. service, EC2 host, RDS instance, Lambda function.

Possible Solution

Show a popover when you click on the policy that shows a table with coverage % breakdown by entity.

Additional context

This enhancement request is from a customer who is trying to use tag-improver to analyse and improve their tagging in AWS.

Entities - Consolidate banner notification, Key:Value filter, and <tag> column

Summary

Currently the Entities tab has basically the same information of what tag key:value is applied to filter the entities displayed. We should consolidate this for improved UX.

Desired Behaviour

We should follow the pattern used in Navigator with filter options presented in-line of the filter notification text with additional filter options ("show all policy tags") presented as toggle switches.

Possible Solution

  • Remove green text banner
  • Remove Column in table
  • Reformat "show all policy tags" checkbox as toggle switch (if possible with SDK)
  • Replace "Key:Value [<tag>]:[<value>]" text with "Displaying entities where <tag> has a value of <value>"
    • Including special values for "any value" and "undefined"

Additional context

Example - Filter options in Navigator

Show tag type in Tag Analyzer

Include new column in Tag Analyzer to indicate whether a tag is Required, Optional, or Non-Policy

Summary

As an admin user, when analyzing tag coverage and usage for an account, I want to see what the tag type is for each tag listed so that I can better prioritize my tag management actions and audit non-policy tags.

Desired Behaviour

Tag Analyzer should include a new column with icon indicator to indicate whether tag is Required, Optional, or Non-Policy according to the tag policy in place, with default sort order: Required, Optional, Non-Policy

Possible Solution

New Tag Analyzer column listing: Tag Name, Enforcement Level, Distinct Values, Tagged Entities, % Coverage

Additional context

mockup: https://whimsical.com/taganalyzer-withenforcementlevelcol-7V6P3rZ8q5DXohp5FS6tEM

[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-file-does-not-exist #

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.

Tag Analyzer: Indicate selected tag in Tags In Use pane when tag selected in Breakdown pane

Summary

Tag Analyzer needs to reflect the tag selected by users in the "Values Breakdown" pane in the "Tags in use" pane as well

Desired Behaviour

When a user selects a tag in the "Values Breakdown" list, the corresponding row for that tag in the "Tags in use" pane should change to indicate that it is now the tag in focus.

Possible Solution

The entire row for a selected tag should change color (to indicate current focus) and remain that color until a new tag is selected. This behavior should be the same whether tag is selected by clicking on a row in the table of tags in the "Tags in use" pane, or selecting a tag from the dropdown list in the "Values Breakdown" pane.

Bulk Add doesn't always tag all entities

[NOTE]: # Adding tags to 24 synthetics monitor error

Description

First time I tried adding two tags and it tagged 22 Synthetics monitor and failed for 2.
Add tags succeeded for 22 entities
Add tags failed for 2 entities

I clicked Retry button then it displayed following message:
Add tags succeeded for 22 entities
Add tags failed for 4 entities

Steps to Reproduce

Check the attached screenshots
image

Expected Behaviour

Should have tagged all entities

Relevant Logs / Console output

Check the attached screenshots
image

Your Environment

NR Account: 2359216
Browser name and version: Latest Chrome in Incognito mode

Additional context

Check the attached screenshots

Change Tag Policies NerdStorage to Account-level

Summary

Tag Improver will provide users both user-scoped and account-scoped Tag Policies, allowing teams of users to align & collaborate on a shared account-scoped policy as well as analyze tags & tag values in use according to personal, user-scoped Tag Policies.

Desired Behaviour

  • When defining or updating a tag policy, users are provided with an option to select whether the tag policy should be User- (default) or Account-scoped.
    • If no tag policy is found at the specified scope, Tag Improver creates a new tag policy at that scope, using the default tag policy schema
  • When analyzing tags and tags in use, users are provided with an option to specify whether to analyze according to the User- or Account-scope tag policy.

Possible Solution

  • In the Policy tab, policy scope selection should be implemented as a dropdown list with the options user-scope and account-scope
  • User or Account scope determines whether User- or Account-scope NerdStorage is used to read and store the tag policy.
  • When policy scope is selected (or on initial load), Tag Improver checks the corresponding NerdStorage and loads the corresponding policy, if one is found.
  • In the Tag Analyzer tab, when policy scope changes, this should trigger a reanalysis of the tags and tags in use for the specified Account, but ideally not a re-querying of the entities to analyze.

User Stories

  • As a member of the admin group, I want to define and maintain shared tag policies for accounts, so that we can ensure there are single "official" definitions for tag behavior in our accounts.
  • As a member of the admin group, I want other users to see additions, updates, and deletions that I have made on our account tag policy, and I theirs, so that we can keep in sync and alignment on our strategy for entity metadata (tags).
  • As a non-admin, I want to be able to view the definitions for tags on an account to which I have access, so that I can have the context of the larger taxonomy of entity metadata (tags) in the account.

Additional context

  • Only users with "write access" to the account-level NerdStorage for an account should be able to create/edit/delete the tag policy for that account.
    • Q: What is the right role/capabilities to test for? How to account for both V1 & V2 users?

Tag keys in Policy should not be editable

Summary

Currently, tag keys in a policy can be edited. Consequently, with a small change to the tag key, users could force thousands of entities out of tag compliance as the existing tag keys no longer match the tag key as part of the tag policy. For example, if an account has 1000 entities in compliance with a policy where the tag "environment" is required, a change in the tag policy renaming "environment" to "env" would define those 1000 previously-in-compliance entities now out of compliance.

Desired Behaviour

The tag key field in the Policy tab should not be freetext but restricted to either an existing tag key present in the account, or to create a new tag key.

Possible Solution

Field type for Tag Key should be changed to a dropdown populated by existing tag keys present (by entity type & account). An option in the dropdown for <create new key> should be available and invoke the same Add tags card modal present in the Entities tab.

Additional context

Tag dropdown lists in Actions (Add/Change/Rename/Remove) in Entities tab should be consistent with other Tag dropdown lists

Summary

The dropdown lists for tags in the "Add Tags", "Rename Tags", "Change Values", and "Remove Tags" should be consistent with the tag dropdown lists used elsewhere in Tag Improver and reflect the enforcement levels and valid values of the tags.

Desired Behaviour

In "Add Tags", "Change Values", and "Remove Tags", the dropdown list for Tag key should indicate enforcement levels and organize by Required or Optional.
In "Rename Tags", the dropdown list for Tag key should indicate enforcement levels and organize by Required or Optional, but also display all Non-Policy tags.

In "Add Tags" and "Change Values", the dropdown list for Tag value should be restricted to only those valid values if the selected tag has a Closed license with a specific set of valid values.

Tag types visible in tag names dropdowns in Entities tab

Summary

The tag types, as defined by the tag policy in scope, should be visible in the names dropdown menus used in the Entities tab of Tag Improver. This allows users to see which tags are Required, Optional, or Non-policy when selecting tags in the Entities tab. This includes:

  • Selecting which tag is displayed in the table
  • Selecting tags to Add to selected Entities
  • Selecting tags to Rename for selected Entities
  • Selecting tags to Change Values in selected Entities
  • Selecting tags to Remove from selected Entities

Desired Behaviour

When users select the tag dropdown menu anywhere in the Entities tab or in cards in the Entities tab (Add tags, Rename tags, Change value, Remove tags), the menu displayed should have the available tags organized according to the tag policy in force. Tags should be segmented by Required, Optional, and Non-policy as defined by the tag policy in force.

Possible Solution

See mockup
Updated example following style conventions (below)

Platform convention is sentence case throughout. Only exception is user entered language

For the style:
Font: Open Sans
Weight: Regular
Size: 12 px
Color: #6E7575

Additional context

Per Issue #52, newly added tags should be visible and available in the dropdown menu, and newly removed tags no longer available

Add check & user warning when attempting to add duplicate tags

Summary

Users should receive an error when attempting to add a tag key that is a duplicate of an existing tag key.

Desired Behaviour

In the Add tags card, if a user tries to add a new tag that has the same key as an existing tag key, the user should receive an error message indicating that that one or more of the selected entities already contain a tag with this key and that Tag Improver does not support adding duplicate tag keys.

Possible Solution

Include a check in the Add Tags process to scan the existing tag keys in the selected entities for the tag key being added.

Additional context

Add entity type filter

Add a required Entity type filter that selects which entity type is loaded for analysis
[ ] Default to APM Application
[ ] Consider either auto-populating with all known entity types or hard-code a list of Application, Host, Browser, Mobile, Synthetic, Dashboard, Workload

Aligning Entity Type dropdown across tabs

Summary

Need to align the Entity type dropdown across all 3 tabs - Policy, Tag Analyzer, & Entities

Desired Behaviour

Entity type dropdown should be lowered & aligned to the same position in all 3 tabs

Consolidate tag key:value filtering in Entities tab

Summary

We need to consolidate the filtering options in the Entities tab to provide a more consistent and improved user experience

Desired Behaviour

Users should be able to easily filter entities shown in the Entities tab to only those entities that have a specific tag key:value set. This should include filtering to only entities where there is any value for a tag, or no value for a tag, indicating that the tag is not defined or present for the entity.

Possible Solution

  • Remove all radio button filtering and "Show values for this tag in the table:tag"
  • Replace with "Show all entities where tag has value defined"
    • tag is the common policy tag dropdown, showing only those tags in policy and organized by enforcement level
    • value is a dropdown of all values present in the account scope.
      • The values list should indicate which values valid/in compliance if the tag has a closed license definition separate from values that are present but non-compliant with the valid tag values according to the policy.

Improve height management of side-by-side tables in TagCoverageView

The two tables in TagCoverageView (the Tag analyzer tab implemented in components/tag-coverage.js) are meant to scroll independently so scrolling down in one doesn't remove the other from view.

The current implementation sets div.split { height: 1200px } which causes double-scrolling with a short window, unused space with a tall window, and the table contents to flow down the page when the table is shorter than the page area.

We need to re-do the layout so that div.split is sized appropriately for the browser window height.

Tag Analyzer - Hover state needs to be consistent across whole row

Summary

Hover state coloring needs to be consistent across the entire table row, not just the last "phantom" column

Desired Behaviour

When user cursor hovers over a row in the "Tags in use" table, the entire row (all cells in the row) should be highlit with the same color. Color used for hover state should be consistent with NR1 style guidelines.

Remove "Name" column from Policy tab

Summary

"Name" column is redundant and adds no real value over "Key" in policy tag definition in Policy tab.

Desired Behaviour

Policy tab no longer displays "Name" column

Possible Solution

Remove "Name" column

Nr1 Tag improver version is not current in the app catalog

ISSUE

The NR1 Tag Improver application is showing version 1.0.6 as latest in the repo, but in the app catalog it's showing as 1.0.4

Screen Shot 2021-03-19 at 5 04 19 PM

Screen Shot 2021-03-19 at 5 04 33 PM

Steps to repo

  1. view the release version in this repo
  2. go to the app catalog in the platform and view the version of the app
  3. they don't match 🤷

Expected

The App Catalog version should reflect the code repo version.

Tag Analyzer - Change formatting for <tag not defined> value

Summary

The <tag not defined> row of values for a selected tag should be changed to remove the background color and make coloring conditional on the selected tag's Enforcement level.

Desired Behaviour

When a tag is selected in Tag Analyzer, the always-present top row of <tag not defined> should not have any background color.
The <tag not defined> text should be bold, and change font color depending on the Enforcement level of the selected tag:

  • Required = Red
  • Optional = Dark Yellow
  • Non-policy = Black

Tag Analyzer - <tag not defined> not displaying when no entities on account have tag defined

Description

In Tag Analyzer, users are not seeing a count of entities where the selected tag is not defined. This functionality is behaving as expected if there is at least one entity where the tag is defined.

Steps to Reproduce

  1. Navigate to Tag Analyzer tab
  2. Select tag with 0 Distinct Values & 0 Entity Count

Expected Behaviour

A row in the right pane for "Tags in use for <tag>" should have a "<tag not defined>" row displaying the count of all entities on the account(s) in scope that do not have the selected tag defined.

Relevant Logs / Console output

Your Environment

  • NR1 CLI version used: @datanerd/nr1/1.32.1 darwin-x64 node-v10.24.0
  • Browser name and version: Chrome - Version 89.0.4389.114 (Official Build) (x86_64)
  • Operating System and version: MacOS - 10.15.7 (19H524)

Additional context

Screenshot

Provide a way to track coverage progress over time

Summary

Feedback from a custom says, as we improve our tagging over time, it would be awesome to be able to track our coverage percentage over time in a report. Bonus points for potentially being able to query/alert/facet on that metric.

Desired Behaviour

Provide a way to see coverage percentage over time and

Possible Solution

Somehow write a metric to NR that tracks coverage. Would be cool if tags on that metric includes, entity types/domains, NR account ID etc.

Additional context

N.A

Improve discoverability in Entities view

Based on initial user feedback, a couple of issues we should address:

  • Show all policy tags function is not discoverable; would prefer to default to showing all policy tags and having option to hide the in-compliance tags.
  • "How do I sort and filter the Entities table to only the things I want to edit"; maybe solved by #50 and #51? Maybe remove "show values for this tag in the table" and instead implement a search filter that scans entity name, tag key & value?

Workflow from Tag Analyzer to see "which entities are using this key:value"

When viewing the Tag analyzer, a user wants to know "which entities are using this specific tag key:value that I see?"

A solution would be to switch over to the Entities view and filter the entity list to the relevant key:value.

UX solution for this should also address #51

2020/03/24 Update: Add new radio button in Entities for:
"All entities with this tag defined with <value> value" <- is selectable, prepopulated if Entities is opened from "manage" in Tag Analyzer

Use consistent language & formatting across Tag Improver

Summary

Need to ensure that the language and formatting used across Tag Improver is consistent internally and consistent with NR1 where possible.

Possible Solution

  • In Policy tab:
    • "Tag Key" should be changed to "Key"
  • In Tag Analyzer tab:
    • "Tag name" should be changed to "Key"
    • "Tagged entities" should be changed to "Entity count"
    • "% Coverage" should be changed to "Coverage"
    • Add "%" formatting to values in "Coverage column (example: "43%")
    • "Tag value" should be changed to "Value"
    • "manage" links should be capitalized to "Manage"
    • All numeric values in tables should use Menlo font & be right-justified. (Distinct values, Entity count, & Coverage columns)
  • In Entities tab:
    • Change "Mandatory Tags" to "Required tags"
      • All numeric values in tables should use Menlo font & be right-justified. (Score column)

All column headers should be Title case (only first term capitalized)

Summary

Includes a number of small changes to color and text formatting

Possible Solution

  • Change all column headers to Title case (only first term capitalized)
    • Example: Change "Enforcement Level" to "Enforcement level"

Additional context

This undoes some of the changes added in Issue #67

Provide a way to define tag value allowed list

Summary

Say we have a tag, label.Owner. This tag should only be allowed to have say, three values. If it doesn't have this value, it is not a valid tag. So if label.Owner != 'SRE', 'Dev' or 'Eng', do not consider the tag be present/valid.

Desired Behaviour

When creating a new rule/policy, ask for a list of allowed values, if the tags match the key, but not the value, don't count it towards the coverage percentage.

Possible Solution

Allow a list of valid value keys to be supplied with a new rule.

Additional context

Some tags only have a few valid values in our case. Otherwise we want to report if the tag is present but has an invalid value.

Reorder tags in dropdown

In the bulk tag edit UIs, put in-policy tags (sorted by required, then alpha) at the top of the tag name picker

Coverage % is incorrect

Description

Working with the app, we have created some policies. The coverage % is way off.

image

Steps to Reproduce

Defined a custom policy with required status.

Expected Behaviour

Coverage % should be below or equal to 100%

Relevant Logs / Console output

N/A

Your Environment

Additional context

Disable immutable tags in bulk edit actions

Retrieve the mutable field for tags and disallow bulk edit operations on tags that are immutable.

When determining mutability, API provides a mutable flag for each value of each tag on each entity. For this story, a tag key should be considered immutable on an entity type if any entity of that type has an immutable value for the key. e.g if one or more APM APPLICATION entities have a value marked as immutable for the team tag then team should be treated as immutable.

Immutable tag keys should be hidden from the auto-complete list in the Add, Rename, Edit, and Delete bulk action UIs.

If a user types an immutable tag key into a form for add/rename/edit, show a confirmation dialog before executing the action and allow the user to continue or cancel. text: "The XXXX tag is read-only on some entities because it is defined outside the NR One platform. This action may not succeed for all entities, do you want to proceed?"

Provide a way to filter entities that have one tag (optional or required) but not another

Summary

If we have three required tags, we'd like an easy way to filter a list of entities which have one or more of the required tags but not all of them.

Desired Behaviour

When triggering a filter in the UI, display a list of entities that have one or more tags but not others.

Possible Solution

Have a checkbox or button that filters to entities with only 'partial' tagging i.e. one or more tags but not all.

Additional context

N/A

Support different tag policies for each entity type

Need

We have different policy goals for infrastructure, services, mobile apps, synthetic checks, etc. Because Tag Improver has a single policy, we have to annotate which tags are required or option for which entity types and then keep track of that when we distribute compliance reports.

As a workaround, I can edit the policy each time I run a report for a specific entity type or (because TI stores the policy per user) have a different user view the policy for each entity type. These are less than ideal, and the multi-user workaround will stop working when #11 is fixed.

Desired solution

Give me the ability to select which entity types are relevant for each tag in my policy. Then filter the reports to only the relevant tags based on what entity type I am viewing.

Language changes for consistency & readability

Summary

Changing some of the language in Tag Improver for improved readability & consistency.

Possible Solution

In Tag Analyzer tab:

  • Change "Tag tag Breakdown" to "Values in use for tag Tag"
  • Change "Tagged Entities" to "Entity Count"
  • Change "Tag name" to "Tag key"

Additional context

Repeating language changes for Entities radio buttons (detailed in Issue #51):
"All entities with this tag defined with value"
"All entities with this tag defined with any value"
"All entities with this tag not defined"
"All entities"

Show which entities do not have a specific tag assigned

When viewing the Entities table, allow the user to filter to entities that are missing a specific tag key.

Tag key picker for this should provide a dropdown of all known tags for the entity type under analysis. No need for arbitrary text input as, by definition, we're filtering to an existing tag key.

Should allow user to filter to either "all entities that have this tag" or "all entities that do not have this tag"

UX solution for this should also address #50

2020/03/24 Update: Add new radio buttons for:

  • "All entities with this tag defined with <value> value" <- is selectable, prepopulated if Entities is opened from "manage" in Tag Analyzer
  • "All entities with this tag defined with any value"
  • "All entities with this tag not defined"
  • "All entities"

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.