Infrastructure Utils
Welcome to Infrastructure Utils
Introduction
Welcome to the Infrastructure Utilities project page!
This project offers technical utilities and infrastructures for other projects to use.
JavaDoc is at https://javadocs.opendaylight.org/org.opendaylight.infrautils/oxygen/, getting started guide at https://docs.opendaylight.org/projects/infrautils/en/latest/getting-started-guide/features.html, developer guide at http://docs.opendaylight.org/en/latest/developer-guide/infrautils-developer-guide.html and specs at http://docs.opendaylight.org/en/latest/submodules/infrautils/docs/specs/index.html
We currently (as of May 2017) consider infrautils a low-level offset 0 project. As is now, it only depends on odlparent, and does not have dependencies to e.g. controller & mdsal or yangtools. This is intentional, as this would allow such projects to use utilities from infrautils (without causing circular dependencies among offset 0 projects).
We anticipate that e.g. the upcoming ready service may eventually want to be used by other offset 0 projects, and therefore want to be careful to not accidentally introduce dependencies from infrautils to other offset 0 projects.
Should there be a need to build utilities requiring such dependencies in the future (for example Cache layer for mdsal, YANG RPC for ready, etc.), we should discuss whether to create a new infrautils2 (?) project with dependencies to infrautils and other offset 0 projects, or put such utilities into existing projects such as e.g. genius
Project Facts
Project Creation Date: March 17, 2016
Lifecycle State: Incubation
Type: Kernel
Primary Contact: Faseela K <k.faseela@gmail.com>
Project Lead: Faseela K <k.faseela@gmail.com>
Committers:
Active:
Faseela K <k.faseela@gmail.com>
Tom Pantelis <tompantelis@gmail.com>
Emeritus:
Michael Vorburger <mike@vorburger.ch>
Ravit Peretz <ravit.peretz@hpe.com>
Tomer Pearl <tomer.pearl@hpe.com>
IRC: freenode.net #opendaylight-infrautils
Meetings: If required, please email proposed agenda to kernel-dev list requesting meeting
Mailing List: kernel-dev@lists.opendaylight.org
Meetings: See Community Meetings
Repository: git clone https://git.opendaylight.org/gerrit/infrautils
Jenkins: jenkins silo
Open Bugs:
Documentation
This presentation given at the OpenDaylight Fluorine Developer Design Forum in March 2018 at ONS in LA gives a good overview of the project
(previously also this older presentation given at the OpenDaylight Oxygen Developer Forum in October 2017).
The Getting Started guide has further descriptions of the available features.
Planned Features (WIP)
Metrics enhancements
Future possible implementations
direct OpenStack Ceilometer integration - looking for parties interested in contributing this!
..., Atlas, Datadog, Ganglia, Graphite, Influx, New Relic, SignalFx, StatsD, Wavefront, ...; via http://micrometer.io
Future tighter integrations with exsting ODL technical infrastructure
TODO (contributions welcome!):
infrautils.jobcoordinator more extended metrics (it already has the basic ones), e.g. for labels per job key, and Timers for job execution, etc.
monitored Executor ThreadPool related stuff
Karaf Jetty server metrics
...
Logging with ExecutionOrigin ID
https://git.opendaylight.org/gerrit/#/q/topic:mdc
web API with OSGi and standalone implementation for (non-IT) e2e component tests and simple distribution
see https://git.opendaylight.org/gerrit/#/q/topic:simple-dist_web+(status:open+OR+status:merged)
Future Ideas
Tracing
Linux Foundation (LF) Cloud Native Computing Foundation (CNCF) Open Tracing for OpenDaylight and its north- and southbound!
Removed Features
Counters infrastructure
Create, update and output counters is a basic tool for debugging and generating statistics in any system. We've developed a counter infrastructure integrated into ODL which has already been successfully used with multiple products, and more recently in debugging and fixing the OpenFlow plugin/Java and LACP modules.
See Getting started with Counters and Presentation Slides from the ODL 2016 Developer Design Forum: [1] for more information about Counters.
Async infrastructure
Remove in https://git.opendaylight.org/gerrit/#/c/53215/ : The decision to split a service into one or more threads with asynchronous interactions between them is frequently dependent on constraints learned late in the development and even the deployment cycle. In order to allow flexibility in making these decisions we've developed an infrastructure which is configuration driven allowing agnostic code to be written under generic constrains which can then later be customized according to the required constraints.
Appendix
Helpful Links
Release Plans
The infrautils project does not publish forward looking release plans. This Wiki page does however have a "Completed & Available" and a "Planned Features (WIP)" section above. So whatever is in is in by cut off and makes it, what's not gets deferred to the next release. Parties interested in "Planned Features (WIP)" are welcome to contribute!
Aluminium
TSC-261: Infrautils Aluminium Release PlanOpen
Magnesium
TSC-239: Infrautils Magnesium Release PlanOpen