GithubHelp home page GithubHelp logo

mozilla / probe-dictionary Goto Github PK

View Code? Open in Web Editor NEW
7.0 27.0 17.0 2.22 MB

Tool that makes Firefox Telemetry probe information searchable

Home Page: https://probes.telemetry.mozilla.org

License: Mozilla Public License 2.0

JavaScript 90.60% HTML 2.02% CSS 6.55% Dockerfile 0.42% Shell 0.42%

probe-dictionary's Introduction

probe-dictionary

A tool that makes the Telemetry probe data in Firefox more discoverable and searchable.

This front-end allows answering questions like

  • "do we have any probes in Firefox 55 that tell us about tab usage?"
  • "which Firefox versions is this probe in anyway?"

To achieve this, it uses data extracted by the probe-scraper project. This pulls probe registry files (Histograms.json, Scalars.yaml, Events.yaml) from different Firefox versions together into one dataset. Also, probes outside of Histograms.json - like the CSS use counters - are included in the output data.

Currently this supports:

  • release, beta & nightly channels
  • major releases only
  • all probes registered in separate files (histograms, scalars, events)
  • some select environment data points (more to come)

This project was bootstrapped with Create React App.

Development

To run locally:

run npm start To launch the cypress test runner: run npm run test

The production data endpoints should work just fine locally.

probe-dictionary's People

Contributors

badboy avatar chutten avatar dependabot[bot] avatar dexterp37 avatar georgf avatar gijsk avatar hampgoodwin avatar iinh avatar mozilla-github-standards avatar openjck avatar robhudson avatar robotblake avatar spasovski avatar wlach avatar

Stargazers

 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

probe-dictionary's Issues

probe dictionary version expiry inconsistent / unclear

I was trying to figure out when this probe expired:

https://telemetry.mozilla.org/probe-dictionary/?search=preferences&detailView=histogram%2FFX_PREFERENCES_CATEGORY_OPENED_V2

The page above says:

Recorded in versions:
beta 54 to 58, nightly 55 to 58, release 54 to 58
Expiry:
beta stopped recording in 66, nightly stopped recording in 66, release stopped recording in 66

After some help from chutten and tdsmith, this bug indicates that it indeed expired in 66, yet the most recent valid version is FF64.

I believe the recorded in versions section is mistake, however it also wasn't clear without that bug as a reference that I needed to filter my data to version 64.

Modernize the front-end code

Currently the front-end code here uses plain JS + some jquery.
We should use a more modern frame-work (Angular, React, Vue).

Use bootstrap loading bar

After #1 is done, we should be able to use the bootstrap loading bar (instead of the current gif-based solution).

Add row to Details view for links to DXR & searchfox searches for the probe name

For Environment stuff direct them to TelemetryEnvironment.jsm

Histograms will probably mostly work except for ones composed by macro (some families of networking probes do this)

Scalars are often composed from category&name, javascript collections can be more easily composed, so links to searches may not be as helpful.

Events... events may be tricky.

Toolbar apparently inoperative when viewing a probe

STR:
Search for a probe, pick one.
Click the "Stats" button at the top.

Expected:
Something happens

Actual:
Nothing happens until you click the tiny x up in the far right corner.

This looks and behaves very much like a new page, except for that little x. But the change in style does not hint at the presence of the x and I completely missed it. I then wondered why I couldn't see anything.

Remove reference to main summary for events

Events have not been on the main ping since we started sending the main ping, and newer events will never show up there. We should remove the reference to main_summary on event detail pages since the events dataset includes events from both main and event pings

Show "last update" in the users local time

Currently we just add the "last update" value directly to the page.
Per this the value should now be a full ISO date string, including the time.
We should show it as the users local date & time (probably with just a precision of minutes).

Clean up repository layout & contents

The only used code in this repository is in data/.
The other parts got moved over to the probe-scraper project and can be removed.
This means we can just move the contents of data/ to the top level of the repository.

Remove reference to main summary for events

Events have not been on the main ping since we started sending the main ping, and newer events will never show up there. We should remove the reference to main_summary on event detail pages since the events dataset includes events from both main and event pings

#53

Implement the Probe Dictionary in React

This is a bug to track the status of the already opened PR: #58

The original request was made by @georgf with @chutten taking later ownership. Much of the probe filtering/details functions were implemented almost verbatim (without jQuery this time) so any behavior/bugs might still persist.

Add more data to the detail view

Add more data to the detail view, specifically:

  • probe owners / emails
  • bug numbers
  • categorical labels
  • version range this is recorded in

"Add a keyword for this search" uses `?text_search=` instead of `?search=`

In the React version, if you right-click>Add Keyword for this Search>(then provide a keyword). That keyword search in Firefox will have the pattern https://probe-dictionary.herokuapp.com/?text_search=%s

Which is a problem because the actual query param for the search term is search, not text_search

Add pagination

As the number of probes we need to show grows (especially as we remove the probe filtering as specified in #67) the size of the DOM for a probe dictionary page grows, negatively impacting performance and user experience. Adding pagination to the UI will help resolve this issue.

Wiki changes

FYI: The following changes were made to this repository's wiki:

These were made as the result of a recent automated defacement of publically writeable wikis.

Use basic bootstrap style

The current style is pretty incidental/basic; we should make this use the basic bootstrap style instead.

CODE_OF_CONDUCT.md file missing

As of January 1 2019, Mozilla requires that all GitHub projects include this CODE_OF_CONDUCT.md file in the project root. The file has two parts:

  1. Required Text - All text under the headings Community Participation Guidelines and How to Report, are required, and should not be altered.
  2. Optional Text - The Project Specific Etiquette heading provides a space to speak more specifically about ways people can work effectively and inclusively together. Some examples of those can be found on the Firefox Debugger project, and Common Voice. (The optional part is commented out in the raw template file, and will not be visible until you modify and uncomment that part.)

If you have any questions about this file, or Code of Conduct policies and procedures, please see Mozilla-GitHub-Standards or email [email protected].

(Message COC001)

Remove probe filtering based on datasets.json

In the older probe dictionary, the datasets.json file was used to specify the subset of probes that the dictionary should expose. Now that we've moved to the GCP infrastructure, all of the probes are available in our data sets, so we no longer need this filter... the probe dictionary should expose all of the probes. The means we no longer need the datasets.json mechanism to specify which probes should be shown.

Show more probe details

Currently we only show the probe info details that are available in the list view.
However, the backing data actually has more details.

We can just add a "(+)" button or similar, that shows a detail view for each probe, with all the detail from the backing data.

A first cut could just show the data in <probe id>/history/<channel>/details.
Later (in a separate issue) we could maybe expand this to actually show the probe details across channels.

Multiple search terms would be nice

I can search for probes with the word video in any text field and get a number of results.

I can search for probes with the word time in any text field and get a number of results.

However when I type video time, video and time, or video & time I get no results. I presume because no text fields contain those literal phrases, not because there are no probes with both the words video and time.

Sort channel+ver lists to have nightly,beta,release order

At present the "Recorded in versions" and "Expiry" rows in the details view order their channels alphabetically: beta, nightly, release.

I'm thinking we should custom-sort these to nightly, beta, release to match train order.

Add "see also" link for addons etc.

We recently added more environment data, including addons.

This and other environment data can be objects or arrays, that contain multiple items with more properties. E.g. entries in addons.activeAddons[addonId] have multiple properties like

It would be great for discovery, if we could show a link to "show me all of the addons.activeAddons properties".
I propose that in detail views like the one for addons.activeAddons[addonId].appDisabled, we show a new row called "See also", which has a link to "All properties for addons.activeAddons[addonId]".

For Glean, we should support markdown in a probe's description

Glean doesn't restrict how to format the text description of a probe.
It would be nice to support rendering Markdown, when displayed in the probe-dictionary.
The glean_parser is already able to generate a Markdown document from the defined metrics (e.g. see metrics.md of Fenix). If there's markdown-like syntax in the description it will be unescaped in the generated docs.

I leave it to you whether we need to take any precautions in filtering anything (e.g. don't allow images or raw html tags).
For now probe-dictionary only covers Mozilla products, so we have control over what's in there.

(This is moving Bug 1561597 to the right project).

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.