July 2023

AWS Blu Insights - Dependencies and Classification engines

The classification and dependencies analysis are key features in AWS Blu Insights. They allow to rapidly dive deep into the codebase and start the assessment within a few minutes independently of the size of the codebase. In this short post, we wanted to share with you some metrics about those features. 
 

Metrics

# of launches per month
During the last 12 months, AWS Blu Insights handled an average of 363 dependencies and 252 classifications analysis per month, with a success rate over 99%. 🚀🚀

Classification analysis
 

MonthFailed analysisRequested analysisSuccess rate
2022-060160100%
2022-07620597.07%
2022-08126299.62%
2022-09116999.41%
2022-100174100%
2022-11118099.44%
2022-120273100%
2023-01131899.69%
2023-02335799.16%
2023-03131199.68%
2023-04122899.56%
2023-05440497.03%
2023-060238100%
Total19327999.42%

Dependencies analysis
 

MonthFailed analysisRequested analysisSuccess rate
2022-06422098.18%
2022-07424298.35%
2022-080337100%
2022-09523697.88%
2022-100281100%
2022-11129899.66%
2022-121234996.56%
2023-01663499.05%
2023-02535498.59%
2023-03246099.57%
2023-04431998.75%
2023-05159099.83%
2023-06240099.50%
Total46472099.03%

# of supported languages and statements

The dependencies engine supports 26 programming languages for almost 250 statements, including 120 for mainframe and AS400. We documented all supported statements (including dynamic calls).

The classification engine handles 33 programming languages (along with empty and binary files) for a total of 345 statements.

# of tests 
As of today, we maintain 2,370 tests performed on 28 reference projects. Typically, we commit new changes only if all the tests are successful:
 

  • 2,000 tests for the dependencies.
  • 364 tests for the classification.
  • 6 performance tests.


# of reviews and validations

The high success rate presented above is the outcome of a rigorous work methodology and set of mechanisms put in place. Based on new requests raised by customers or identified by the team, we deep dive into the documentation (if any), we check for as much examples as possible, we setup the feature (describe how it will be supported), we write unit tests, etc. The entire process is made of almost 9 distinct steps, which include 5 mandatory reviews made by other team members. ✅

 

Yes, but we are not done...

Although we cover a lot of languages and statements, we continuously discover new languages and statements. In most cases, we can handle them within a few days. We designed the engines to allow incremental extensions and the support of new findings. In addition, we highly encourage users to move forward with the existing features that allow to adapt and fine tune the obtained results. For example:
 

  • They can leverage Manage Types combined to BQL or Workspace to identify some other types.
  • They can add/remove links in their graph using Graph Operations.
  • They can download the dependencies result as a JSON file and rework it.
  • They can leverage Show More Links to identify/add missing links.

We are also working on other features to help you move forward while we encourage you to create tickets and let us know whenever you identify an improvement, we could add to our engines. 🤝

Now, go build!