You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2020/04/07 08:01:32 UTC

[james-project] 07/07: [Enhencement] Add glowroot pugins

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit e2596a7f044ad1b449489214b6db4815a092d208
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon Apr 6 11:25:50 2020 +0700

    [Enhencement] Add glowroot pugins
    
    Added pluging:
     - SMTP: Allow review of incoming SMTP traffic, with a per-command analysis
     - JMAP: Allow review per method
    
    Because so far JMAP relies on HTTP plugin, all method calls are presented under the same web transaction
    which prevent us from doing a in depth per method review.
    
    This new JMAP plugin aims at enhancing this.
    
     - MailboxListener: monitor per mailbox listener consumed resources
     - Task: Allow a per task performance analysis
    
    Enhenced plugins:
     - Spooler: add recording per Mailet / Matcher to contextualize more spooler statistics
---
 .../destination/glowroot/plugins/jmap.json         | 19 ++++++++++++++++
 .../glowroot/plugins/mailboxListener.json          | 19 ++++++++++++++++
 .../destination/glowroot/plugins/smtp.json         | 19 ++++++++++++++++
 .../destination/glowroot/plugins/spooler.json      | 26 ++++++++++++++++++++++
 .../destination/glowroot/plugins/task.json         | 19 ++++++++++++++++
 .../destination/glowroot/plugins/jmap.json         | 19 ++++++++++++++++
 .../glowroot/plugins/mailboxListener.json          | 19 ++++++++++++++++
 .../destination/glowroot/plugins/smtp.json         | 19 ++++++++++++++++
 .../destination/glowroot/plugins/spooler.json      | 26 ++++++++++++++++++++++
 .../destination/glowroot/plugins/task.json         | 19 ++++++++++++++++
 .../destination/glowroot/plugins/jmap.json         | 19 ++++++++++++++++
 .../glowroot/plugins/mailboxListener.json          | 19 ++++++++++++++++
 .../destination/glowroot/plugins/smtp.json         | 19 ++++++++++++++++
 .../destination/glowroot/plugins/spooler.json      | 26 ++++++++++++++++++++++
 .../destination/glowroot/plugins/task.json         | 19 ++++++++++++++++
 .../destination/glowroot/plugins/jmap.json         | 19 ++++++++++++++++
 .../glowroot/plugins/mailboxListener.json          | 19 ++++++++++++++++
 .../destination/glowroot/plugins/smtp.json         | 19 ++++++++++++++++
 .../destination/glowroot/plugins/spooler.json      | 26 ++++++++++++++++++++++
 .../destination/glowroot/plugins/task.json         | 19 ++++++++++++++++
 .../destination/glowroot/plugins/blobstore.json    | 26 ----------------------
 .../destination/glowroot/plugins/imap.json         | 19 ----------------
 .../destination/glowroot/plugins/smtp.json         | 19 ++++++++++++++++
 .../destination/glowroot/plugins/spooler.json      | 26 ++++++++++++++++++++++
 .../destination/glowroot/plugins/task.json         | 19 ++++++++++++++++
 .../destination/glowroot/plugins/blobstore.json    | 26 ----------------------
 .../jpa/destination/glowroot/plugins/jmap.json     | 19 ++++++++++++++++
 .../glowroot/plugins/mailboxListener.json          | 19 ++++++++++++++++
 .../jpa/destination/glowroot/plugins/smtp.json     | 19 ++++++++++++++++
 .../jpa/destination/glowroot/plugins/spooler.json  | 26 ++++++++++++++++++++++
 .../jpa/destination/glowroot/plugins/task.json     | 19 ++++++++++++++++
 .../destination/glowroot/plugins/blobstore.json    | 26 ----------------------
 .../memory/destination/glowroot/plugins/jmap.json  | 19 ++++++++++++++++
 .../glowroot/plugins/mailboxListener.json          | 19 ++++++++++++++++
 .../memory/destination/glowroot/plugins/smtp.json  | 19 ++++++++++++++++
 .../destination/glowroot/plugins/spooler.json      | 26 ++++++++++++++++++++++
 .../memory/destination/glowroot/plugins/task.json  | 19 ++++++++++++++++
 37 files changed, 676 insertions(+), 97 deletions(-)

diff --git a/dockerfiles/run/guice/cassandra-ldap/destination/glowroot/plugins/jmap.json b/dockerfiles/run/guice/cassandra-ldap/destination/glowroot/plugins/jmap.json
new file mode 100644
index 0000000..9afce4b
--- /dev/null
+++ b/dockerfiles/run/guice/cassandra-ldap/destination/glowroot/plugins/jmap.json
@@ -0,0 +1,19 @@
+{
+  "name": "JMAP Plugin",
+  "id": "jmap",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.jmap.draft.methods.Method",
+      "methodName": "processToStream",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "JMAP",
+      "transactionNameTemplate": "JMAP method : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "jmapMethod"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/cassandra-ldap/destination/glowroot/plugins/mailboxListener.json b/dockerfiles/run/guice/cassandra-ldap/destination/glowroot/plugins/mailboxListener.json
new file mode 100644
index 0000000..54a55ac
--- /dev/null
+++ b/dockerfiles/run/guice/cassandra-ldap/destination/glowroot/plugins/mailboxListener.json
@@ -0,0 +1,19 @@
+{
+  "name": "MailboxListener Plugin",
+  "id": "mailboxListener",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.mailbox.events.MailboxListener",
+      "methodName": "event",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "MailboxListener",
+      "transactionNameTemplate": "MailboxListener : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "mailboxListener"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/cassandra-ldap/destination/glowroot/plugins/smtp.json b/dockerfiles/run/guice/cassandra-ldap/destination/glowroot/plugins/smtp.json
new file mode 100644
index 0000000..393bac9
--- /dev/null
+++ b/dockerfiles/run/guice/cassandra-ldap/destination/glowroot/plugins/smtp.json
@@ -0,0 +1,19 @@
+{
+  "name": "SMTP Plugin",
+  "id": "smtp",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.protocols.smtp.core.AbstractHookableCmdHandler",
+      "methodName": "onCommand",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "SMTP",
+      "transactionNameTemplate": "SMTP command : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "smtpProcessor"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/cassandra-ldap/destination/glowroot/plugins/spooler.json b/dockerfiles/run/guice/cassandra-ldap/destination/glowroot/plugins/spooler.json
index b9623a0..fd7732d 100644
--- a/dockerfiles/run/guice/cassandra-ldap/destination/glowroot/plugins/spooler.json
+++ b/dockerfiles/run/guice/cassandra-ldap/destination/glowroot/plugins/spooler.json
@@ -14,6 +14,32 @@
       "alreadyInTransactionBehavior": "capture-trace-entry",
       "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
       "timerName": "mailetProcessor"
+    },
+    {
+      "className": "org.apache.mailet.Mailet",
+      "methodName": "service",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "Mailet",
+      "transactionNameTemplate": "Mailet : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "mailet"
+    },
+    {
+      "className": "org.apache.mailet.Matcher",
+      "methodName": "match",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "Matcher",
+      "transactionNameTemplate": "Mailet processor : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "matcher"
     }
   ]
 }
\ No newline at end of file
diff --git a/dockerfiles/run/guice/cassandra-ldap/destination/glowroot/plugins/task.json b/dockerfiles/run/guice/cassandra-ldap/destination/glowroot/plugins/task.json
new file mode 100644
index 0000000..8f04c69
--- /dev/null
+++ b/dockerfiles/run/guice/cassandra-ldap/destination/glowroot/plugins/task.json
@@ -0,0 +1,19 @@
+{
+  "name": "Task Plugin",
+  "id": "task",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.task.Task",
+      "methodName": "run",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "TASK",
+      "transactionNameTemplate": "TASK : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "task"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/cassandra-rabbitmq-ldap/destination/glowroot/plugins/jmap.json b/dockerfiles/run/guice/cassandra-rabbitmq-ldap/destination/glowroot/plugins/jmap.json
new file mode 100644
index 0000000..9afce4b
--- /dev/null
+++ b/dockerfiles/run/guice/cassandra-rabbitmq-ldap/destination/glowroot/plugins/jmap.json
@@ -0,0 +1,19 @@
+{
+  "name": "JMAP Plugin",
+  "id": "jmap",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.jmap.draft.methods.Method",
+      "methodName": "processToStream",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "JMAP",
+      "transactionNameTemplate": "JMAP method : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "jmapMethod"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/cassandra-rabbitmq-ldap/destination/glowroot/plugins/mailboxListener.json b/dockerfiles/run/guice/cassandra-rabbitmq-ldap/destination/glowroot/plugins/mailboxListener.json
new file mode 100644
index 0000000..54a55ac
--- /dev/null
+++ b/dockerfiles/run/guice/cassandra-rabbitmq-ldap/destination/glowroot/plugins/mailboxListener.json
@@ -0,0 +1,19 @@
+{
+  "name": "MailboxListener Plugin",
+  "id": "mailboxListener",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.mailbox.events.MailboxListener",
+      "methodName": "event",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "MailboxListener",
+      "transactionNameTemplate": "MailboxListener : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "mailboxListener"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/cassandra-rabbitmq-ldap/destination/glowroot/plugins/smtp.json b/dockerfiles/run/guice/cassandra-rabbitmq-ldap/destination/glowroot/plugins/smtp.json
new file mode 100644
index 0000000..393bac9
--- /dev/null
+++ b/dockerfiles/run/guice/cassandra-rabbitmq-ldap/destination/glowroot/plugins/smtp.json
@@ -0,0 +1,19 @@
+{
+  "name": "SMTP Plugin",
+  "id": "smtp",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.protocols.smtp.core.AbstractHookableCmdHandler",
+      "methodName": "onCommand",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "SMTP",
+      "transactionNameTemplate": "SMTP command : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "smtpProcessor"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/cassandra-rabbitmq-ldap/destination/glowroot/plugins/spooler.json b/dockerfiles/run/guice/cassandra-rabbitmq-ldap/destination/glowroot/plugins/spooler.json
index b9623a0..fd7732d 100644
--- a/dockerfiles/run/guice/cassandra-rabbitmq-ldap/destination/glowroot/plugins/spooler.json
+++ b/dockerfiles/run/guice/cassandra-rabbitmq-ldap/destination/glowroot/plugins/spooler.json
@@ -14,6 +14,32 @@
       "alreadyInTransactionBehavior": "capture-trace-entry",
       "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
       "timerName": "mailetProcessor"
+    },
+    {
+      "className": "org.apache.mailet.Mailet",
+      "methodName": "service",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "Mailet",
+      "transactionNameTemplate": "Mailet : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "mailet"
+    },
+    {
+      "className": "org.apache.mailet.Matcher",
+      "methodName": "match",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "Matcher",
+      "transactionNameTemplate": "Mailet processor : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "matcher"
     }
   ]
 }
\ No newline at end of file
diff --git a/dockerfiles/run/guice/cassandra-rabbitmq-ldap/destination/glowroot/plugins/task.json b/dockerfiles/run/guice/cassandra-rabbitmq-ldap/destination/glowroot/plugins/task.json
new file mode 100644
index 0000000..8f04c69
--- /dev/null
+++ b/dockerfiles/run/guice/cassandra-rabbitmq-ldap/destination/glowroot/plugins/task.json
@@ -0,0 +1,19 @@
+{
+  "name": "Task Plugin",
+  "id": "task",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.task.Task",
+      "methodName": "run",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "TASK",
+      "transactionNameTemplate": "TASK : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "task"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/cassandra-rabbitmq/destination/glowroot/plugins/jmap.json b/dockerfiles/run/guice/cassandra-rabbitmq/destination/glowroot/plugins/jmap.json
new file mode 100644
index 0000000..9afce4b
--- /dev/null
+++ b/dockerfiles/run/guice/cassandra-rabbitmq/destination/glowroot/plugins/jmap.json
@@ -0,0 +1,19 @@
+{
+  "name": "JMAP Plugin",
+  "id": "jmap",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.jmap.draft.methods.Method",
+      "methodName": "processToStream",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "JMAP",
+      "transactionNameTemplate": "JMAP method : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "jmapMethod"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/cassandra-rabbitmq/destination/glowroot/plugins/mailboxListener.json b/dockerfiles/run/guice/cassandra-rabbitmq/destination/glowroot/plugins/mailboxListener.json
new file mode 100644
index 0000000..54a55ac
--- /dev/null
+++ b/dockerfiles/run/guice/cassandra-rabbitmq/destination/glowroot/plugins/mailboxListener.json
@@ -0,0 +1,19 @@
+{
+  "name": "MailboxListener Plugin",
+  "id": "mailboxListener",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.mailbox.events.MailboxListener",
+      "methodName": "event",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "MailboxListener",
+      "transactionNameTemplate": "MailboxListener : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "mailboxListener"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/cassandra-rabbitmq/destination/glowroot/plugins/smtp.json b/dockerfiles/run/guice/cassandra-rabbitmq/destination/glowroot/plugins/smtp.json
new file mode 100644
index 0000000..393bac9
--- /dev/null
+++ b/dockerfiles/run/guice/cassandra-rabbitmq/destination/glowroot/plugins/smtp.json
@@ -0,0 +1,19 @@
+{
+  "name": "SMTP Plugin",
+  "id": "smtp",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.protocols.smtp.core.AbstractHookableCmdHandler",
+      "methodName": "onCommand",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "SMTP",
+      "transactionNameTemplate": "SMTP command : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "smtpProcessor"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/cassandra-rabbitmq/destination/glowroot/plugins/spooler.json b/dockerfiles/run/guice/cassandra-rabbitmq/destination/glowroot/plugins/spooler.json
index b9623a0..fd7732d 100644
--- a/dockerfiles/run/guice/cassandra-rabbitmq/destination/glowroot/plugins/spooler.json
+++ b/dockerfiles/run/guice/cassandra-rabbitmq/destination/glowroot/plugins/spooler.json
@@ -14,6 +14,32 @@
       "alreadyInTransactionBehavior": "capture-trace-entry",
       "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
       "timerName": "mailetProcessor"
+    },
+    {
+      "className": "org.apache.mailet.Mailet",
+      "methodName": "service",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "Mailet",
+      "transactionNameTemplate": "Mailet : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "mailet"
+    },
+    {
+      "className": "org.apache.mailet.Matcher",
+      "methodName": "match",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "Matcher",
+      "transactionNameTemplate": "Mailet processor : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "matcher"
     }
   ]
 }
\ No newline at end of file
diff --git a/dockerfiles/run/guice/cassandra-rabbitmq/destination/glowroot/plugins/task.json b/dockerfiles/run/guice/cassandra-rabbitmq/destination/glowroot/plugins/task.json
new file mode 100644
index 0000000..8f04c69
--- /dev/null
+++ b/dockerfiles/run/guice/cassandra-rabbitmq/destination/glowroot/plugins/task.json
@@ -0,0 +1,19 @@
+{
+  "name": "Task Plugin",
+  "id": "task",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.task.Task",
+      "methodName": "run",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "TASK",
+      "transactionNameTemplate": "TASK : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "task"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/cassandra/destination/glowroot/plugins/jmap.json b/dockerfiles/run/guice/cassandra/destination/glowroot/plugins/jmap.json
new file mode 100644
index 0000000..9afce4b
--- /dev/null
+++ b/dockerfiles/run/guice/cassandra/destination/glowroot/plugins/jmap.json
@@ -0,0 +1,19 @@
+{
+  "name": "JMAP Plugin",
+  "id": "jmap",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.jmap.draft.methods.Method",
+      "methodName": "processToStream",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "JMAP",
+      "transactionNameTemplate": "JMAP method : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "jmapMethod"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/cassandra/destination/glowroot/plugins/mailboxListener.json b/dockerfiles/run/guice/cassandra/destination/glowroot/plugins/mailboxListener.json
new file mode 100644
index 0000000..54a55ac
--- /dev/null
+++ b/dockerfiles/run/guice/cassandra/destination/glowroot/plugins/mailboxListener.json
@@ -0,0 +1,19 @@
+{
+  "name": "MailboxListener Plugin",
+  "id": "mailboxListener",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.mailbox.events.MailboxListener",
+      "methodName": "event",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "MailboxListener",
+      "transactionNameTemplate": "MailboxListener : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "mailboxListener"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/cassandra/destination/glowroot/plugins/smtp.json b/dockerfiles/run/guice/cassandra/destination/glowroot/plugins/smtp.json
new file mode 100644
index 0000000..393bac9
--- /dev/null
+++ b/dockerfiles/run/guice/cassandra/destination/glowroot/plugins/smtp.json
@@ -0,0 +1,19 @@
+{
+  "name": "SMTP Plugin",
+  "id": "smtp",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.protocols.smtp.core.AbstractHookableCmdHandler",
+      "methodName": "onCommand",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "SMTP",
+      "transactionNameTemplate": "SMTP command : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "smtpProcessor"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/cassandra/destination/glowroot/plugins/spooler.json b/dockerfiles/run/guice/cassandra/destination/glowroot/plugins/spooler.json
index b9623a0..fd7732d 100644
--- a/dockerfiles/run/guice/cassandra/destination/glowroot/plugins/spooler.json
+++ b/dockerfiles/run/guice/cassandra/destination/glowroot/plugins/spooler.json
@@ -14,6 +14,32 @@
       "alreadyInTransactionBehavior": "capture-trace-entry",
       "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
       "timerName": "mailetProcessor"
+    },
+    {
+      "className": "org.apache.mailet.Mailet",
+      "methodName": "service",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "Mailet",
+      "transactionNameTemplate": "Mailet : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "mailet"
+    },
+    {
+      "className": "org.apache.mailet.Matcher",
+      "methodName": "match",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "Matcher",
+      "transactionNameTemplate": "Mailet processor : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "matcher"
     }
   ]
 }
\ No newline at end of file
diff --git a/dockerfiles/run/guice/cassandra/destination/glowroot/plugins/task.json b/dockerfiles/run/guice/cassandra/destination/glowroot/plugins/task.json
new file mode 100644
index 0000000..8f04c69
--- /dev/null
+++ b/dockerfiles/run/guice/cassandra/destination/glowroot/plugins/task.json
@@ -0,0 +1,19 @@
+{
+  "name": "Task Plugin",
+  "id": "task",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.task.Task",
+      "methodName": "run",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "TASK",
+      "transactionNameTemplate": "TASK : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "task"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/jpa-smtp/destination/glowroot/plugins/blobstore.json b/dockerfiles/run/guice/jpa-smtp/destination/glowroot/plugins/blobstore.json
deleted file mode 100644
index 84291c6..0000000
--- a/dockerfiles/run/guice/jpa-smtp/destination/glowroot/plugins/blobstore.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-  "name": "BlobStore Plugin",
-  "id": "blob_store",
-  "instrumentation": [
-    {
-      "captureKind": "trace-entry",
-      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
-      "timerName": "blobstore",
-      "className": "org.apache.james.blob.objectstorage.BlobPutter",
-      "methodName": "putDirectly",
-      "methodParameterTypes": [
-        ".."
-      ]
-    },
-    {
-      "captureKind": "trace-entry",
-      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
-      "timerName": "blobstore",
-      "className": "org.apache.james.blob.objectstorage.BlobPutter",
-      "methodName": "putAndComputeId",
-      "methodParameterTypes": [
-        ".."
-      ]
-    }
-  ]
-}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/jpa-smtp/destination/glowroot/plugins/imap.json b/dockerfiles/run/guice/jpa-smtp/destination/glowroot/plugins/imap.json
deleted file mode 100644
index d27904f..0000000
--- a/dockerfiles/run/guice/jpa-smtp/destination/glowroot/plugins/imap.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-  "name": "IMAP Plugin",
-  "id": "imap",
-  "instrumentation": [
-    {
-      "className": "org.apache.james.imap.processor.base.AbstractChainedProcessor",
-      "methodName": "doProcess",
-      "methodParameterTypes": [
-        ".."
-      ],
-      "captureKind": "transaction",
-      "transactionType": "IMAP",
-      "transactionNameTemplate": "IMAP processor : {{this.class.name}}",
-      "alreadyInTransactionBehavior": "capture-trace-entry",
-      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
-      "timerName": "imapProcessor"
-    }
-  ]
-}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/jpa-smtp/destination/glowroot/plugins/smtp.json b/dockerfiles/run/guice/jpa-smtp/destination/glowroot/plugins/smtp.json
new file mode 100644
index 0000000..393bac9
--- /dev/null
+++ b/dockerfiles/run/guice/jpa-smtp/destination/glowroot/plugins/smtp.json
@@ -0,0 +1,19 @@
+{
+  "name": "SMTP Plugin",
+  "id": "smtp",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.protocols.smtp.core.AbstractHookableCmdHandler",
+      "methodName": "onCommand",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "SMTP",
+      "transactionNameTemplate": "SMTP command : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "smtpProcessor"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/jpa-smtp/destination/glowroot/plugins/spooler.json b/dockerfiles/run/guice/jpa-smtp/destination/glowroot/plugins/spooler.json
index b9623a0..fd7732d 100644
--- a/dockerfiles/run/guice/jpa-smtp/destination/glowroot/plugins/spooler.json
+++ b/dockerfiles/run/guice/jpa-smtp/destination/glowroot/plugins/spooler.json
@@ -14,6 +14,32 @@
       "alreadyInTransactionBehavior": "capture-trace-entry",
       "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
       "timerName": "mailetProcessor"
+    },
+    {
+      "className": "org.apache.mailet.Mailet",
+      "methodName": "service",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "Mailet",
+      "transactionNameTemplate": "Mailet : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "mailet"
+    },
+    {
+      "className": "org.apache.mailet.Matcher",
+      "methodName": "match",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "Matcher",
+      "transactionNameTemplate": "Mailet processor : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "matcher"
     }
   ]
 }
\ No newline at end of file
diff --git a/dockerfiles/run/guice/jpa-smtp/destination/glowroot/plugins/task.json b/dockerfiles/run/guice/jpa-smtp/destination/glowroot/plugins/task.json
new file mode 100644
index 0000000..8f04c69
--- /dev/null
+++ b/dockerfiles/run/guice/jpa-smtp/destination/glowroot/plugins/task.json
@@ -0,0 +1,19 @@
+{
+  "name": "Task Plugin",
+  "id": "task",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.task.Task",
+      "methodName": "run",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "TASK",
+      "transactionNameTemplate": "TASK : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "task"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/jpa/destination/glowroot/plugins/blobstore.json b/dockerfiles/run/guice/jpa/destination/glowroot/plugins/blobstore.json
deleted file mode 100644
index 84291c6..0000000
--- a/dockerfiles/run/guice/jpa/destination/glowroot/plugins/blobstore.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-  "name": "BlobStore Plugin",
-  "id": "blob_store",
-  "instrumentation": [
-    {
-      "captureKind": "trace-entry",
-      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
-      "timerName": "blobstore",
-      "className": "org.apache.james.blob.objectstorage.BlobPutter",
-      "methodName": "putDirectly",
-      "methodParameterTypes": [
-        ".."
-      ]
-    },
-    {
-      "captureKind": "trace-entry",
-      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
-      "timerName": "blobstore",
-      "className": "org.apache.james.blob.objectstorage.BlobPutter",
-      "methodName": "putAndComputeId",
-      "methodParameterTypes": [
-        ".."
-      ]
-    }
-  ]
-}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/jpa/destination/glowroot/plugins/jmap.json b/dockerfiles/run/guice/jpa/destination/glowroot/plugins/jmap.json
new file mode 100644
index 0000000..9afce4b
--- /dev/null
+++ b/dockerfiles/run/guice/jpa/destination/glowroot/plugins/jmap.json
@@ -0,0 +1,19 @@
+{
+  "name": "JMAP Plugin",
+  "id": "jmap",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.jmap.draft.methods.Method",
+      "methodName": "processToStream",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "JMAP",
+      "transactionNameTemplate": "JMAP method : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "jmapMethod"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/jpa/destination/glowroot/plugins/mailboxListener.json b/dockerfiles/run/guice/jpa/destination/glowroot/plugins/mailboxListener.json
new file mode 100644
index 0000000..54a55ac
--- /dev/null
+++ b/dockerfiles/run/guice/jpa/destination/glowroot/plugins/mailboxListener.json
@@ -0,0 +1,19 @@
+{
+  "name": "MailboxListener Plugin",
+  "id": "mailboxListener",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.mailbox.events.MailboxListener",
+      "methodName": "event",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "MailboxListener",
+      "transactionNameTemplate": "MailboxListener : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "mailboxListener"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/jpa/destination/glowroot/plugins/smtp.json b/dockerfiles/run/guice/jpa/destination/glowroot/plugins/smtp.json
new file mode 100644
index 0000000..393bac9
--- /dev/null
+++ b/dockerfiles/run/guice/jpa/destination/glowroot/plugins/smtp.json
@@ -0,0 +1,19 @@
+{
+  "name": "SMTP Plugin",
+  "id": "smtp",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.protocols.smtp.core.AbstractHookableCmdHandler",
+      "methodName": "onCommand",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "SMTP",
+      "transactionNameTemplate": "SMTP command : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "smtpProcessor"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/jpa/destination/glowroot/plugins/spooler.json b/dockerfiles/run/guice/jpa/destination/glowroot/plugins/spooler.json
index b9623a0..fd7732d 100644
--- a/dockerfiles/run/guice/jpa/destination/glowroot/plugins/spooler.json
+++ b/dockerfiles/run/guice/jpa/destination/glowroot/plugins/spooler.json
@@ -14,6 +14,32 @@
       "alreadyInTransactionBehavior": "capture-trace-entry",
       "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
       "timerName": "mailetProcessor"
+    },
+    {
+      "className": "org.apache.mailet.Mailet",
+      "methodName": "service",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "Mailet",
+      "transactionNameTemplate": "Mailet : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "mailet"
+    },
+    {
+      "className": "org.apache.mailet.Matcher",
+      "methodName": "match",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "Matcher",
+      "transactionNameTemplate": "Mailet processor : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "matcher"
     }
   ]
 }
\ No newline at end of file
diff --git a/dockerfiles/run/guice/jpa/destination/glowroot/plugins/task.json b/dockerfiles/run/guice/jpa/destination/glowroot/plugins/task.json
new file mode 100644
index 0000000..8f04c69
--- /dev/null
+++ b/dockerfiles/run/guice/jpa/destination/glowroot/plugins/task.json
@@ -0,0 +1,19 @@
+{
+  "name": "Task Plugin",
+  "id": "task",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.task.Task",
+      "methodName": "run",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "TASK",
+      "transactionNameTemplate": "TASK : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "task"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/memory/destination/glowroot/plugins/blobstore.json b/dockerfiles/run/guice/memory/destination/glowroot/plugins/blobstore.json
deleted file mode 100644
index 84291c6..0000000
--- a/dockerfiles/run/guice/memory/destination/glowroot/plugins/blobstore.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-  "name": "BlobStore Plugin",
-  "id": "blob_store",
-  "instrumentation": [
-    {
-      "captureKind": "trace-entry",
-      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
-      "timerName": "blobstore",
-      "className": "org.apache.james.blob.objectstorage.BlobPutter",
-      "methodName": "putDirectly",
-      "methodParameterTypes": [
-        ".."
-      ]
-    },
-    {
-      "captureKind": "trace-entry",
-      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
-      "timerName": "blobstore",
-      "className": "org.apache.james.blob.objectstorage.BlobPutter",
-      "methodName": "putAndComputeId",
-      "methodParameterTypes": [
-        ".."
-      ]
-    }
-  ]
-}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/memory/destination/glowroot/plugins/jmap.json b/dockerfiles/run/guice/memory/destination/glowroot/plugins/jmap.json
new file mode 100644
index 0000000..9afce4b
--- /dev/null
+++ b/dockerfiles/run/guice/memory/destination/glowroot/plugins/jmap.json
@@ -0,0 +1,19 @@
+{
+  "name": "JMAP Plugin",
+  "id": "jmap",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.jmap.draft.methods.Method",
+      "methodName": "processToStream",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "JMAP",
+      "transactionNameTemplate": "JMAP method : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "jmapMethod"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/memory/destination/glowroot/plugins/mailboxListener.json b/dockerfiles/run/guice/memory/destination/glowroot/plugins/mailboxListener.json
new file mode 100644
index 0000000..54a55ac
--- /dev/null
+++ b/dockerfiles/run/guice/memory/destination/glowroot/plugins/mailboxListener.json
@@ -0,0 +1,19 @@
+{
+  "name": "MailboxListener Plugin",
+  "id": "mailboxListener",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.mailbox.events.MailboxListener",
+      "methodName": "event",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "MailboxListener",
+      "transactionNameTemplate": "MailboxListener : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "mailboxListener"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/memory/destination/glowroot/plugins/smtp.json b/dockerfiles/run/guice/memory/destination/glowroot/plugins/smtp.json
new file mode 100644
index 0000000..393bac9
--- /dev/null
+++ b/dockerfiles/run/guice/memory/destination/glowroot/plugins/smtp.json
@@ -0,0 +1,19 @@
+{
+  "name": "SMTP Plugin",
+  "id": "smtp",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.protocols.smtp.core.AbstractHookableCmdHandler",
+      "methodName": "onCommand",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "SMTP",
+      "transactionNameTemplate": "SMTP command : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "smtpProcessor"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/dockerfiles/run/guice/memory/destination/glowroot/plugins/spooler.json b/dockerfiles/run/guice/memory/destination/glowroot/plugins/spooler.json
index b9623a0..fd7732d 100644
--- a/dockerfiles/run/guice/memory/destination/glowroot/plugins/spooler.json
+++ b/dockerfiles/run/guice/memory/destination/glowroot/plugins/spooler.json
@@ -14,6 +14,32 @@
       "alreadyInTransactionBehavior": "capture-trace-entry",
       "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
       "timerName": "mailetProcessor"
+    },
+    {
+      "className": "org.apache.mailet.Mailet",
+      "methodName": "service",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "Mailet",
+      "transactionNameTemplate": "Mailet : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "mailet"
+    },
+    {
+      "className": "org.apache.mailet.Matcher",
+      "methodName": "match",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "Matcher",
+      "transactionNameTemplate": "Mailet processor : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "matcher"
     }
   ]
 }
\ No newline at end of file
diff --git a/dockerfiles/run/guice/memory/destination/glowroot/plugins/task.json b/dockerfiles/run/guice/memory/destination/glowroot/plugins/task.json
new file mode 100644
index 0000000..8f04c69
--- /dev/null
+++ b/dockerfiles/run/guice/memory/destination/glowroot/plugins/task.json
@@ -0,0 +1,19 @@
+{
+  "name": "Task Plugin",
+  "id": "task",
+  "instrumentation": [
+    {
+      "className": "org.apache.james.task.Task",
+      "methodName": "run",
+      "methodParameterTypes": [
+        ".."
+      ],
+      "captureKind": "transaction",
+      "transactionType": "TASK",
+      "transactionNameTemplate": "TASK : {{this.class.name}}",
+      "alreadyInTransactionBehavior": "capture-trace-entry",
+      "traceEntryMessageTemplate": "{{this.class.name}}.{{methodName}}",
+      "timerName": "task"
+    }
+  ]
+}
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org