AppMap overview

What is AppMap?

AppMap - is a free and open-source interactive code analysis tool.

AppMap is like “‘Google Maps for code”. AppMap “drives the back roads of your app”, collecting information about how your code works and what it does. Then it presents this information as interactive maps that you can search and navigate. In the maps, you can see exactly how functions, web services, data stores, security, I/O, and dependent services all work together when application code runs.

You use AppMaps right in your code editor, using an AppMap extension or plugin. AppMap is right with you as you code. You don’t have to visit an external website, or push your code to CI. An AppMap is a tab in your code editor, right next to your code. AppMaps even link directly to code, and code can link to AppMaps as well.

Over 3,500 software developers are using the AppMap extension for VSCode and the AppMap for JetBrains.

Getting started screenshot AppMap dependency map in Visual Studio Code

What kind of code does it work with?

AppMap works best with web application and API frameworks, such as Rails, Django, Flask, and Spring. That’s because AppMap has specialized features for mapping web services, routing, view templates, HTTP client requests, caching, authentication, and SQL. You can map any kind of project that’s written in a supported language, but it’s when you map a database-backed web application or API service that you’ll see the full power of AppMap.

AppMap works equally well with small and large projects - monoliths and microservices. And by large, we mean large. AppMap has been used successfully on code bases with 10 million lines of code. For a project that large, AppMap is a truly game-changing way to understand what the code is doing, from the front-end templates and web services, through the classes and functions, through SQL and HTTP client requests, and back.

What can I use it for?

Help new developers get oriented by creating a library of key AppMaps

If you’re an expert on a code base, you can create AppMaps that will help other developers to learn how the code works, ramp up quickly, and contribute. Start collecting AppMaps of key flows into a project Wiki or README. Then, when you get questions about the code base, you can direct developers there to get “self-service” code onboarding help from AppMaps.

Use AppMaps to add context to bug reports and other code issues

If you find a bug or security flaw, you can record an AppMap and attach it to the code issue/ticket. The AppMap will be a massive help to the developer who takes on the task of finding and fixing the bug. Developers, security testers, and QA people can all help make bug fixing easier by recording and submitting AppMaps to the dev team.

For more details, see the Guides Add AppMaps to a code issue and Debug faster with AppMaps.

Use AppMaps to learn new-to-you code

If you’re new to a code base, you can ask a code expert to provide you with some AppMaps that will orient you to the work you’ve been asked to do. The code expert can direct you to a Wiki or README that has AppMaps of key flows. Or, the code expert can make you a custom AppMap - and then you can return the favor by contributing the AppMap to the project Wiki or README, along with some of your own thoughts about how to use it.

For more details, see the Guide Learn how new-to-you code works.

Features

  • Code execution recording AppMap agent libraries record executing code and save the data as JSON files. Running test cases is the most common way to record AppMaps, but it’s not the only way. You can find additional examples of how to record AppMaps in the AppMap recording methods documentation.
  • Code visualization AppMap automatically displays the JSON data as interactive diagrams. Dependency maps and Trace diagrams let you navigate, zoom, and traverse code paths quickly. Learn more about How to use AppMap diagrams.
  • SQL query data AppMap records all SQL queries that your application makes. Whether a query is listed explicitly in the code, or automatically generated by an object-relational mapping (ORM) library, you can see exactly what’s happening between your code and the database. Learn more about How to use SQL in AppMaps
  • Web services data AppMap records all HTTP server requests that are handled by your application. The AppMap includes the request method, path, headers, parameters, and status code, so you can see exactly what message your application received, and how it responded. AppMap captures so much information about HTTP server requests that it can automatically generate a complete OpenAPI (aka Swagger) file for your application. Learn more about generating the OpenAPI description file.
  • Code labels You can apply labels to the most important functions in your code. You can quickly identify and locate the most important functions in each code path by searching for labels in AppMap diagrams. Labels are maintained right in the code base using annotations (Java and Python) or code comments (Ruby). Because labels are in the code, all developers can collaborate on labeling, and the code is always the source of truth for labels.
  • Custom analysis tools You can write code which processes AppMap JSON data directly, or use the higher-level functions provided by the appmap-js library to create custom diagrams, filters and rules.
  • Open source AppMap’s most killer feature. AppMap agent libraries and UI code are all available as MIT License open source. Learn about Open Source contributions and our community.

AppMap Cloud

AppMap Cloud is a repository for AppMaps. It enhances the power and performance of certain AppMap features, by providing a server-based API to store, index, and manage AppMaps. You can upload AppMaps to the Cloud to share them with colleagues and attach links to other apps, such as issue tracking and pull/merge requests. And it also provides role-based access control for your dev team or enterprise.

AppMap Cloud is located at https://app.land.

The AppMap Cloud is currently in an open preview, and free for use by individuals and teams. Contact us for information about commercial licensing and support. For Enterprises who require self-hosting, deployment options are available. Please contact us for more information.


Was this page helpful? thumb_up Yes thumb_down No
Thank you for your feedback!