Welcome to the Open Software Instrumentation Project

Start here to learn what software instrumentation is and how you can get started. You'll also learn about our mission and values and how you can join us. Or jump straight to the categories and articles below.

Featured image

The Open Software Instrumentation Project is a free and open community dedicated on harnessing the magic and power of software instrumentation (SI). We learn, code, share, create tools, build community, and more.

[[Join us!]]

Our Mission and Vision

In the real world, we instrument complex things like cars, airplanes, factories, space shuttles, etc… It would be irresponsible and crazy to operate these things without great instrumentation – we’d have no way to know what’s going on. But software is arguably the most complex thing ever created by humanity, and we have terrible instrumentation. Traditional logging is nowhere near what we need.

We believe that in the future all software will be instrumented. During development, we see SI as a modular and elegant way deliver exactly the right code to exactly where it needs to be – what some have called “aspect-oriented programming.” We also see SI as the key to better software operations through better analysis, observability, security, performance, and more. As a community, our mission is to advance the state-of-the-art in SI, promote SI tools and techniques, and connect people interested in SI.

What Is SI?

Put simply, SI is an approach to combining pieces of software focused on different concerns into a unified application. For example, you can build business functions separately from security defeneses, security tests, usability features, performance sensors, and more. As code is loaded, SI dynamically applies and merges these different concerns together to create a fully-integrated application.

Terminology: SI lets you target specific locations in your application by defining a “pointcut.” You can enhance the code in those locations with an “advice.” The actual locations where code modification occurs are called “join points.”

Some people think SI is just for adding performance timers or extra logging to applications. But it’s actually far more powerful than that. SI can help achieve separation of concerns, modularity, performance, security, scalability, and more. There’s really no limit to how you can enhance software using instrumentation.

Community Principles

Everything in the Open Software Instrumentation Project is freely available under a common open source license. We value contribution, interaction, transparency, and common sense over rigid governance. We encourage open, candid, respectful, and relevant discussion and will not tolerate abusive or inappropriate content or behavior. We are committed to diversity and do not tolerate discrimination on the basis of race, creed, color, ethnicity, national origin, religion, sex, sexual orientation, gender identity and expression, age, physical characteristics or ability, health status, mental ability, or marital status. We encourage vendor participation but this is not a forum for sales or marketing activity.

Join Us

We need your help. Whether you’re a student, security expert, performance engineer, or a grizzled compiler designer, if you’re interested in SI you can join us and help us advance the state-of-the-art. Pick a topic, do some research, and share what you learn. {HERE FOR INSTRUCTIONS ON CONTRIBUTING}

[[JOIN US]]