Skip to content

amvdevlab/Mortem-Metrics

Repository files navigation

Image

Incident timeline generator for post-mortem analysis

Important

[HIBERNATED]

Overview

Mortem Metrics addresses the data aggregation challenge in post-mortem incident analysis. The application streamlines timeline construction by ingesting disparate data sources—Slack messages, PagerDuty alerts, screenshots, and ticket logs—and automatically generating a chronological incident timeline. This eliminates manual searching across siloed systems and reduces human error in reconstructing failure sequences. The web application supports four initial file formats (.csv, .txt, .log, .json) with automated timeline generation. Output renders in markdown for easy editing and export, enabling seamless integration into final post-mortem reports. A history dashboard provides quick access to previously generated timelines, each tagged with incident identifiers. Planned enhancements include customizable markdown templates for organizational compliance, advanced prompt engineering for fine-tuned reasoning, timeline regeneration capabilities, and persistent storage for both timelines and source files.

Deliverables

Built

✓ UI Mockups
✓ Database Schema
✓ API Endpoints
✓ Testing and CI/CD pipeline
✓ Spring Profiles for development and production
✓ Database connection for PostgreSQL & Supabase
✓ File parsing from supported file types to compressed text

Delayed

✗ AI integration
✗ Prompt engineering
✗ Frontend (Welcome, Import modal, Generation progress, Timeline editor, History dashboard)
✗ API service layer and frontend implementation ✗ Deployment (Containerization with a Docker image)

Design and Development

UI

Complete UI/UX design system spanning the full user workflow: welcome screen, file import modal, generation progress indicators, markdown timeline editor, and history dashboard for reference and retrieval.

Image Image Image Image Image
Project Structure
├── HELP.md
├── README.md
├── Version2.md
├── build-context.md
├── mvnw
├── mvnw.cmd
├── pom.xml
├── src
│   ├── main
│   │   ├── java
│   │   │   └── com
│   │   │       └── na
│   │   │           └── postmortemproject
│   │   │               ├── PostmortemprojectApplication.java
│   │   │               ├── controller
│   │   │               │   └── UploadController.java
│   │   │               ├── entity
│   │   │               │   └── Timeline.java
│   │   │               ├── parser
│   │   │               │   ├── CsvParser.java
│   │   │               │   ├── FileParser.java
│   │   │               │   ├── JsonParser.java
│   │   │               │   ├── LogTxtParser.java
│   │   │               │   ├── ParserFactory.java
│   │   │               │   └── dto
│   │   │               │       └── ParseResult.java
│   │   │               ├── repository
│   │   │               │   └── TimelineRepository.java
│   │   │               ├── service
│   │   │               │   ├── FileStorageService.java
│   │   │               │   ├── ParseUploadException.java
│   │   │               │   ├── ParseUploadService.java
│   │   │               │   └── TextReducerService.java
│   │   │               └── util
│   │   │                   └── ContentTypeMapper.java
│   │   └── resources
│   │       ├── application-dev.properties
│   │       ├── application-dev.properties.template
│   │       ├── application-test.properties
│   │       ├── application.properties
│   │       ├── static
│   │       └── templates
│   └── test
│       └── java
│           └── com
│               └── na
│                   └── postmortemproject
│                       ├── PostmortemprojectApplicationTests.java
│                       ├── parser
│                       │   ├── CsvParserTEST.java
│                       │   ├── JsonParserTest.java
│                       │   ├── LogTxtParserTEST.java
│                       │   └── ParserFactoryTEST.java
│                       ├── repository
│                       │   └── TimelineRepositoryTest.java
│                       └── service
│                           ├── TextReducerServiceCompressAggressiveTEST.java
│                           ├── TextReducerServiceCompressNoneTEST.java
│                           └── TextReducerServiceTEST.java
└── target
   ├── classes
   │   ├── application-dev.properties
   │   ├── application-dev.properties.template
   │   ├── application-test.properties
   │   ├── application.properties
   │   └── com
   │       └── na
   │           └── postmortemproject
   │               ├── PostmortemprojectApplication.class
   │               ├── controller
   │               │   ├── UploadController$ErrorResponse.class
   │               │   ├── UploadController$UploadResponse.class
   │               │   └── UploadController.class
   │               ├── entity
   │               │   └── Timeline.class
   │               ├── parser
   │               │   ├── CsvParser.class
   │               │   ├── FileParser.class
   │               │   ├── JsonParser.class
   │               │   ├── LogTxtParser.class
   │               │   ├── ParserFactory.class
   │               │   └── dto
   │               │       └── ParseResult.class
   │               ├── repository
   │               │   └── TimelineRepository.class
   │               ├── service
   │               │   ├── FileStorageService.class
   │               │   ├── ParseUploadException.class
   │               │   ├── ParseUploadService.class
   │               │   └── TextReducerService.class
   │               └── util
   │                   └── ContentTypeMapper.class
   ├── generated-sources
   │   └── annotations
   ├── generated-test-sources
   │   └── test-annotations
   ├── maven-archiver
   │   └── pom.properties
   ├── maven-status
   │   └── maven-compiler-plugin
   │       ├── compile
   │       │   └── default-compile
   │       │       ├── createdFiles.lst
   │       │       └── inputFiles.lst
   │       └── testCompile
   │           └── default-testCompile
   │               ├── createdFiles.lst
   │               └── inputFiles.lst
   ├── postmortemproject-0.0.1-SNAPSHOT.jar
   ├── postmortemproject-0.0.1-SNAPSHOT.jar.original
   ├── surefire-reports
   │   ├── 2026-02-02T19-44-02_059-jvmRun1-commands.bin
   │   ├── 2026-02-02T19-44-02_059-jvmRun1-events.bin
   │   ├── 2026-02-02T19-55-59_759-jvmRun1-commands.bin
   │   ├── 2026-02-02T19-55-59_759-jvmRun1-events.bin
   │   ├── 2026-02-02T19-59-52_972-jvmRun1-commands.bin
   │   ├── 2026-02-02T19-59-52_972-jvmRun1-events.bin
   │   ├── 2026-02-02T20-00-43_282-jvmRun1-commands.bin
   │   ├── 2026-02-02T20-00-43_282-jvmRun1-events.bin
   │   ├── TEST-com.na.postmortemproject.PostmortemprojectApplicationTests.xml
   │   ├── TEST-com.na.postmortemproject.parser.JsonParserTest.xml
   │   ├── TEST-com.na.postmortemproject.repository.TimelineRepositoryTest.xml
   │   ├── com.na.postmortemproject.PostmortemprojectApplicationTests.txt
   │   ├── com.na.postmortemproject.parser.JsonParserTest.txt
   │   └── com.na.postmortemproject.repository.TimelineRepositoryTest.txt
   └── test-classes
       └── com
           └── na
               └── postmortemproject
                   ├── PostmortemprojectApplicationTests.class
                   ├── parser
                   │   ├── CsvParserTEST.class
                   │   ├── JsonParserTest.class
                   │   ├── LogTxtParserTEST.class
                   │   └── ParserFactoryTEST.class
                   ├── repository
                   │   └── TimelineRepositoryTest.class
                   └── service
                       ├── TextReducerServiceCompressAggressiveTEST.class
                       ├── TextReducerServiceCompressNoneTEST.class
                       └── TextReducerServiceTEST.class

Spring Boot application with strategy pattern for multi-format file parsing, service layer orchestration, and comprehensive test coverage.

About

An AI incident timeline constructor to mitigate time loss on data gathering during post mortem incident management and reporting.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages