Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
Trac
Trac
  • Project overview
    • Project overview
    • Details
    • Activity
  • Issues 246
    • Issues 246
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Operations
    • Operations
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Create a new issue
  • Issue Boards

GitLab is used only for code review, issue tracking and project management. Canonical locations for source code are still https://gitweb.torproject.org/ https://git.torproject.org/ and git-rw.torproject.org.

  • Legacy
  • TracTrac
  • Issues
  • #24028

Closed (moved)
Open
Opened Oct 27, 2017 by iwakeh iwakeh@iwakeh

Provide a modernized API for metrics-lib

In order to provide a more modern API in metrics-lib the interface hierarchy needs to be renewed/restructured/changed in backwards compatible ways.

A separate discussion led to the following results:

  • The new interfaces will be placed in new packages, which allows for keeping good names and improving other w/o disturbing the existing classes. Suggested packages:

    • org.torproject.metrics.descriptor
    • org.torproject.metrics.descriptor.impl
    • org.torproject.metrics.index
    • org.torproject.metrics.internal
  • Besides improving the general structure consider different return types for all time related values and use java.util.Optional for all optional values and other java 8 features (as mentioned in summary ticket #23752 (moved)).

Possible next steps:

  • Use a small, i.e., limited to few classes/interfaces, prototype example for finding the right approach to make these two interface hierarchies live beside each other and minimize additional implementation.
  • Use the working prototype approach to try new naming rules for methods.
  • Extend the found solution to the entire public API.
  • Choose first code base to use the new interface hierarchy.
  • Possibly improve new interface hierarchy.
  • Use new interfaces in all Metrics products.

The other ticket related to an improved metrics-lib API is obsolete with this new approach; for reference and as improvement-idea resource: #19640 (moved). There is a pending new interfaces, which should be only implemented with the new hierarchy (if demand permits): #17861 (moved). The work-in-progress interfaces (and implementations) for webstats could be moved into the new hierarchy already, but could also be easily moved later.

To upload designs, you'll need to enable LFS and have admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: legacy/trac#24028