使用模式检测器评估升级复杂性

概述

此功能允许您通过检测使用的模式检查现有AEM实例的可升级性:

  1. 违反某些规则,并在受升级影响或覆盖的区域执行
  2. 使用AEM 6.x功能或在AEM 6.4上不向后兼容的API,在升级后可能会中断。

这可以作为对升级到AEM 6.4所涉发展努力的评估。

如何设置

模式检测器作为一个软件包单独发布,该软件包适用于从6.1到6.5的任何源AEM版本,目标是AEM 6.5升级。 可以使用包管理器安装。

使用方法

注意

图案检测器可以运行于任何环境,包括本地开发实例。 但是,为了:

  • 提高检测率
  • 避免业务关键型实例出现任何减速
    同时,建议在与生产环境尽可能接近的登台应用程序​上运行它,这些应用程序位于用户应用程序、内容和配置区域。

可以使用多种方法检查图案检测器输出:

  • 通过Felix Inventory控制台:
  1. 通过浏览到以下网页,转到AEM Web Console:https://serveraddress:serverport/system/console/configMgr

  2. 如下图所示,选择​状态 — 图案检测器:

    screenth-2018-2-5pattern-detector

  • 通过基于反应文本或常规JSON界面

  • 通过JSON反应行界面,在每行中生成一个单独的JSON文档。

以下对这两种方法进行了详细说明:

反应接口

该被动接口允许在检测到怀疑时立即处理违规报告。

输出当前位于2个URL下:

  1. 纯文本界面
  2. JSON界面

处理纯文本接口

输出中的信息将格式化为一系列事件条目。 有两个渠道 — 一个用于发布违规,另一个用于发布当前进度。

可以使用以下命令获取它们:

curl -Nsu 'admin:admin' http://localhost:4502/system/console/status-pattern-detector.txt | tee patterns-report.log | grep SUSPICION

输出将如下所示:

2018-02-13T14:18:32.071+01:00 [SUSPICION] The pattern=ECU/extraneous.content.usage was found by detector=ContentAccessDetector with id=a07fd94318f12312c165e06d890cbd3c2c8b8dad0c030663db8b4c800dd7c33f message="Cross-boundary overlay of internal marked path /libs/granite/operations/components/commons/commons.jsp/jcr:content referenced at /apps/granite/operations/components/commons/commons.jsp/jcr:content with properties redefined: jcr:lastModifiedBy, jcr:mimeType, jcr:data, jcr:lastModified, jcr:uuid". More info at=https://www.adobe.com/go/aem6_EC

可以使用grep命令过滤进度:

curl -Nsu 'admin:admin' http://localhost:4502/system/console/status-pattern-detector.txt | tee patterns-report.log | grep PROGRESS

这将产生以下输出:

2018-02-13T14:19:26.909+01:00 [PROGRESS] emitted=127731/52 MB patterns (from=6.4), analysed=45780/16 MB items, found=0 suspicions so far in period=PT5.005S (throughput=34667 items/sec)
2018-02-13T14:19:31.904+01:00 [PROGRESS] emitted=127731/52 MB patterns (from=6.4), analysed=106050/39 MB items, found=0 suspicions so far in period=PT10S (throughput=23378 items/sec)
2018-02-13T14:19:35.685+01:00 [PROGRESS] Finished in period=PT13.782

处理JSON接口

同样,JSON发布后即可使用jq工具进行处理。

curl -Nsu 'admin:admin' http://localhost:4502/system/console/status-pattern-detector.json | tee patterns-report.json | jq --unbuffered -C 'select(.suspicion == true)'

输出:

{
  "timestamp": "2018-02-13T14:20:18.894+01:00",
  "suspicion": true,
  "pattern": {
    "code": "ECU",
    "type": "extraneous.content.usage",
    "detective": "ContentAccessDetector",
    "moreInfo": "https://www.adobe.com/go/aem6_ECU"
  },
  "item": {
    "id": "a07fd94318f12312c165e06d890cbd3c2c8b8dad0c030663db8b4c800dd7c33f",
    "message": "Cross-boundary overlay of internal marked path /libs/granite/operations/components/commons/commons.jsp/jcr:content referenced at /apps/granite/operations/components/commons/commons.jsp/jcr:content with properties redefined: jcr:lastModifiedBy, jcr:mimeType, jcr:data, jcr:lastModified, jcr:uuid"
  }
}

进度每5秒报告一次,除标记为怀疑的消息外,还可排除其他消息来获取:

curl -Nsu 'admin:admin' http://localhost:4502/system/console/status-pattern-detector.json | tee patterns-report.json | jq --unbuffered -C 'select(.suspicion == false)'

输出:

{
  "suspicion": false,
  "timestamp": "2018-02-13T14:21:17.279+01:00",
  "type": "PROGRESS",
  "database": {
    "patternsEmitted": 127731,
    "patternsEmittedSize": "52 MB",
    "databasesEmitted": [
      "6.4"
    ]
  },
  "state": {
    "itemsAnalysed": 57209,
    "itemsAnalysedSize": "26 MB",
    "suspicionsFound": 0
  },
  "progress": {
    "elapsedTime": "PT5.003S",
    "elapsedTimeMilliseconds": 5003,
    "itemsPerSecond": 36965
  }
}
{
  "suspicion": false,
  "timestamp": "2018-02-13T14:21:22.276+01:00",
  "type": "PROGRESS",
  "database": {
    "patternsEmitted": 127731,
    "patternsEmittedSize": "52 MB",
    "databasesEmitted": [
      "6.4"
    ]
  },
  "state": {
    "itemsAnalysed": 113194,
    "itemsAnalysedSize": "46 MB",
    "suspicionsFound": 0
  },
  "progress": {
    "elapsedTime": "PT10S",
    "elapsedTimeMilliseconds": 10000,
    "itemsPerSecond": 24092
  }
}
{
  "suspicion": false,
  "timestamp": "2018-02-13T14:21:25.762+01:00",
  "type": "FINISHED",
  "database": {
    "patternsEmitted": 127731,
    "patternsEmittedSize": "52 MB",
    "databasesEmitted": [
      "6.4"
    ]
  },
  "state": {
    "itemsAnalysed": 140744,
    "itemsAnalysedSize": "63 MB",
    "suspicionsFound": 1
  },
  "progress": {
    "elapsedTime": "PT13.486S",
    "elapsedTimeMilliseconds": 13486,
    "itemsPerSecond": 19907
  }
}
{
  "suspicion": false,
  "type": "SUMMARY",
  "suspicionsFound": 1,
  "totalTime": "PT13.487S"
}
注意

建议的方法是将卷起的整个输出保存到文件中,然后通过jqgrep处理它以过滤信息类型。

检测范围

当前图案检测器允许检查:

  • OSGi捆绑了导出和导入不匹配
  • Sling资源类型和超类型(带有搜索路径内容叠加)的叠加用法
  • Oak指数的定义(兼容性)
  • VLT包(超额使用)
  • rep:用户节点兼容性(在OAuth配置的上下文中)

On this page

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now