├── src ├── main │ ├── webapp │ │ ├── META-INF │ │ │ └── MANIFEST.MF │ │ ├── img │ │ │ ├── info.gif │ │ │ ├── mdb.ico │ │ │ ├── mdb.png │ │ │ ├── sort_asc.png │ │ │ ├── sort_both.png │ │ │ ├── sort_desc.png │ │ │ └── glyphicons-halflings.png │ │ ├── res │ │ │ ├── spinner.gif │ │ │ └── showhide.png │ │ ├── buildInfo.jsp │ │ ├── datetimepicker.html │ │ ├── js │ │ │ ├── jquery.dataTables.sum.js │ │ │ └── jquery.number.min.js │ │ ├── commandResult.jsp │ │ ├── WEB-INF │ │ │ └── web.xml │ │ ├── slowop.jsp │ │ ├── datatables.json │ │ ├── css │ │ │ └── bootstrap-datetimepicker.min.css │ │ └── datatables2.html │ ├── java │ │ └── de │ │ │ └── idealo │ │ │ └── mongodb │ │ │ └── slowops │ │ │ ├── collector │ │ │ ├── Terminable.java │ │ │ ├── StartStopHook.java │ │ │ ├── CollectorManagerInstance.java │ │ │ ├── ProfilingEntry.java │ │ │ └── ProfilingWriter.java │ │ │ ├── jmx │ │ │ └── CollectorManagerMBean.java │ │ │ ├── dto │ │ │ ├── TableDto.java │ │ │ ├── SlowOpsFilterDto.java │ │ │ ├── CommandResultDto.java │ │ │ ├── SlowOpsDto.java │ │ │ ├── CollectorServerDto.java │ │ │ ├── ApplicationStatusDto.java │ │ │ ├── HostInfoDto.java │ │ │ ├── CollectorStatusDto.java │ │ │ └── ProfiledServerDto.java │ │ │ ├── util │ │ │ ├── Terminator.java │ │ │ ├── ProfilingReaderCreator.java │ │ │ ├── Util.java │ │ │ ├── MongoResolver.java │ │ │ └── ConfigReader.java │ │ │ ├── command │ │ │ ├── CmdCurrentOpAll.java │ │ │ ├── ICommand.java │ │ │ ├── CmdCurrentOpNs.java │ │ │ ├── CommandExecutor.java │ │ │ ├── CmdDatabaseStats.java │ │ │ ├── CmdCurrentOp.java │ │ │ ├── CmdHostInfo.java │ │ │ ├── CmdCollectionStats.java │ │ │ └── CmdIdxAccessStats.java │ │ │ ├── grapher │ │ │ ├── AggregatedProfilingGroup.java │ │ │ ├── AggregatedProfilingId.java │ │ │ └── AggregatedProfiling.java │ │ │ ├── servlet │ │ │ ├── SlowOpExample.java │ │ │ ├── ApplicationStatus.java │ │ │ ├── Action.java │ │ │ └── CommandResult.java │ │ │ └── monitor │ │ │ └── MongoDbAccessor.java │ └── resources │ │ ├── config.json │ │ ├── logback.xml │ │ └── config.example.json └── test │ └── java │ └── de │ └── idealo │ └── mongodb │ └── slowops │ ├── dto │ └── ProfiledServerDtoTest.java │ └── util │ └── ConfigReaderTest.java ├── img ├── blog.png ├── video.png ├── slow_operations_app_status.png ├── slow_operations_gui_table.jpg ├── slow_operations_gui_diagram.png ├── slow_operations_gui_diagram_low.png ├── slow_operations_gui_table_low.png └── slow_operations_command_result_page.png ├── .gitignore ├── .github ├── CODEOWNERS └── workflows │ └── add-version-tag.yml ├── catalog-info.yaml ├── Dockerfile ├── docker-compose.yaml ├── renovate.json └── pom.xml /src/main/webapp/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Class-Path: 3 | 4 | -------------------------------------------------------------------------------- /img/blog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idealo/mongodb-slow-operations-profiler/HEAD/img/blog.png -------------------------------------------------------------------------------- /img/video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idealo/mongodb-slow-operations-profiler/HEAD/img/video.png -------------------------------------------------------------------------------- /src/main/webapp/img/info.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idealo/mongodb-slow-operations-profiler/HEAD/src/main/webapp/img/info.gif -------------------------------------------------------------------------------- /src/main/webapp/img/mdb.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idealo/mongodb-slow-operations-profiler/HEAD/src/main/webapp/img/mdb.ico -------------------------------------------------------------------------------- /src/main/webapp/img/mdb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idealo/mongodb-slow-operations-profiler/HEAD/src/main/webapp/img/mdb.png -------------------------------------------------------------------------------- /src/main/webapp/res/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idealo/mongodb-slow-operations-profiler/HEAD/src/main/webapp/res/spinner.gif -------------------------------------------------------------------------------- /img/slow_operations_app_status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idealo/mongodb-slow-operations-profiler/HEAD/img/slow_operations_app_status.png -------------------------------------------------------------------------------- /img/slow_operations_gui_table.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idealo/mongodb-slow-operations-profiler/HEAD/img/slow_operations_gui_table.jpg -------------------------------------------------------------------------------- /src/main/webapp/img/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idealo/mongodb-slow-operations-profiler/HEAD/src/main/webapp/img/sort_asc.png -------------------------------------------------------------------------------- /src/main/webapp/img/sort_both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idealo/mongodb-slow-operations-profiler/HEAD/src/main/webapp/img/sort_both.png -------------------------------------------------------------------------------- /src/main/webapp/img/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idealo/mongodb-slow-operations-profiler/HEAD/src/main/webapp/img/sort_desc.png -------------------------------------------------------------------------------- /src/main/webapp/res/showhide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idealo/mongodb-slow-operations-profiler/HEAD/src/main/webapp/res/showhide.png -------------------------------------------------------------------------------- /img/slow_operations_gui_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idealo/mongodb-slow-operations-profiler/HEAD/img/slow_operations_gui_diagram.png -------------------------------------------------------------------------------- /img/slow_operations_gui_diagram_low.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idealo/mongodb-slow-operations-profiler/HEAD/img/slow_operations_gui_diagram_low.png -------------------------------------------------------------------------------- /img/slow_operations_gui_table_low.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idealo/mongodb-slow-operations-profiler/HEAD/img/slow_operations_gui_table_low.png -------------------------------------------------------------------------------- /img/slow_operations_command_result_page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idealo/mongodb-slow-operations-profiler/HEAD/img/slow_operations_command_result_page.png -------------------------------------------------------------------------------- /src/main/webapp/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idealo/mongodb-slow-operations-profiler/HEAD/src/main/webapp/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | target/ 3 | *.csv 4 | *.log 5 | slowOpsGui*.png 6 | .~lock* 7 | .checkstyle 8 | .classpath 9 | .git_* 10 | .project 11 | .settings 12 | .idealo.yaml 13 | todo.txt 14 | src/main/resources/config.local.json 15 | src/main/resources/config.prod.json 16 | -------------------------------------------------------------------------------- /src/main/java/de/idealo/mongodb/slowops/collector/Terminable.java: -------------------------------------------------------------------------------- 1 | package de.idealo.mongodb.slowops.collector; 2 | 3 | /** 4 | * Created by kay.agahd on 21.06.17. 5 | */ 6 | public interface Terminable { 7 | 8 | void terminate(); 9 | long getDoneJobs(); 10 | } 11 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-code-owners 2 | 3 | # These owners will be the default owners for everything in 4 | # the repo. Unless a later match takes precedence, 5 | # @global-owner1 and @global-owner2 will be requested for 6 | # review when someone opens a pull request. 7 | * @idealo/cloud-core @kagahd 8 | -------------------------------------------------------------------------------- /catalog-info.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: backstage.io/v1alpha1 2 | kind: Component 3 | metadata: 4 | name: mongodb-slow-operations-profiler 5 | description: This java web application collects and stores slow operations from one or more mongoDB system(s) in order to visualize and analyze them. 6 | annotations: 7 | github.com/project-slug: idealo/mongodb-slow-operations-profiler 8 | github.com/team-slug: idealo/cloud-core 9 | spec: 10 | type: service 11 | lifecycle: production 12 | owner: group:cloud-core 13 | system: database-management-toolset 14 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine/git AS cloner 2 | RUN cd /root && git clone https://github.com/idealo/mongodb-slow-operations-profiler.git 3 | 4 | FROM maven:3.8.7-openjdk-18-slim AS builder 5 | COPY --from=cloner /root/mongodb-slow-operations-profiler/ /usr/src/app/ 6 | WORKDIR /usr/src/app/ 7 | RUN mvn package 8 | 9 | FROM tomcat:9-jdk11-openjdk-slim 10 | COPY --from=builder /usr/src/app/target/mongodb-slow-operations-profiler.war /tmp 11 | WORKDIR /usr/local/tomcat/webapps/mongodb-slow-operations-profiler/ 12 | RUN jar -xfv /tmp/mongodb-slow-operations-profiler.war 13 | RUN chown -R nobody:nogroup /usr/local/tomcat/webapps/ 14 | USER nobody:nogroup -------------------------------------------------------------------------------- /src/main/webapp/buildInfo.jsp: -------------------------------------------------------------------------------- 1 |