Traceability Dashboard

The Traceability Dashboard gives detail information of entire DevOps journey in pipeline view

Navigation : Dashboard Groups → Traceability Dashboard 


Introduction :

Traceability is the ability to relate and document all activities of application delivery, which can then be traced both forward or backward from its origin. Requirements traceability help teams to get insights into indicators such as quality of requirements or readiness to ship the requirement.
Traceability report from top level work item to the granular level item along with any artifacts i.e. change requests, user stories, code commits, quality check, deployment etc.
Traceability highly beneficial for tracing end-to-end pipeline and help us to improve our system.

Configuration : 

Below are the pre-requisites to be setup in order to view Traceability dashboard .

  • Click here to download sample Traceability.json for Insights version < 10.3 

  • Click here and download the sample TraceabilityWithSprintAndRelease.json for Insights version >= 10.3

  • Change property as per client pipeline. 

  • Once It configured, upload it in Insights application using Configuration File Management menu, for more detail read Configuration File Management

  • Properties mentioned in traceability.json can be customized based on requirement   

{
"JIRA":{
"uuid":"uuid",
"order":2,
"displayText":"Issues",
"category":"ALM",
"issueKey":"key",
"property":"categoryName",
"epicKey":"epicKey",
"issueType":"issueType",
"toolName":"toolName",
"creationDate":"creationDate",
"resolutionsdate":"resolutionsdate",
"issueStatus":"status",
"author":"reporter",
"projectName":"projectName",
"timestamp":"inSightsTime",
"priority":"priority",
"inSightsTimeX":"inSightsTimeX",
"eventKey":"eventKey",
"uptool":[
"EPIC"
],
"downtool":[
"GIT"
],
"messages":[
{
"Message":"Total {0} in JIRA",
"Operation":"PROPERTY_COUNT",
"OperandName":"issueType",
"OperandValue":[
]
}
],
"uifilter":[
"key"
],
"cardDisplayProps":[
"issueKey",
"author",
"issueStatus",
"issueType"
],
"excludeLabels":["SPRINT"]
},
"GIT":{
"uuid":"uuid",
"category":"SCM",
"order":3,
"displayText":"Commits",
"inSightsTimeX":"inSightsTimeX",
"commitId":"commitId",
"property":"categoryName",
"toolName":"toolName",
"commitStatus":"status",
"author":"authorName",
"repositoryName":"repoName",
"timestamp":"inSightsTime",
"jiraKey":"jiraKey",
"gitCommiTime":"gitCommitTime",
"uptool":[
"JIRA"
],
"downtool":[
"JENKINS"
] ,
"messages":[
{
"Message":"Total {0} Developers ",
"Operation":"DISTINCT_COUNT",
"OperandName":"author",
"OperandValue":[
]
}
],
"uifilter":[
"commitId"
],
"cardDisplayProps":[
"commitId",
"property",
"jiraKey",
"author"

],
"excludeLabels":["FILE_CHANGE"]
}
}

 

{ "JIRA": { "uuid": "uuid", "order": 4, "displayText": "Issues", "category": "ALM", "issueKey": "key", "sprintId": "sprintId", "property": "categoryName", "epicKey": "epicKey", "epicName": "epicName", "summary": "summary", "issueType": "issueType", "toolName": "toolName", "creationDate": "creationDate", "resolutionsdate": "resolutionsdate", "issueStatus": "status", "author": "reporterDisplayName", "projectName": "projectName", "timestamp": "inSightsTime", "priority": "priority", "inSightsTimeX": "inSightsTimeX", "eventKey": "eventKey", "sprints": "sprints", "name": "sprintName", "startDate": "sprintStartDate", "endDate": "sprintEndDate", "completeDate": "sprintCompleteDate", "state": "state", "versionId": "versionId", "fixVersions": "fixVersions", "releaseDate": "releaseDate", "released": "released", "versionName": "versionName", "uptool": [ "EPIC", "SPRINT", "RELEASE" ], "downtool": [ "GITHUB2" ], "messages": [ { "Message": "Total {0} in JIRA", "Operation": "PROPERTY_COUNT", "OperandName": "issueType", "OperandValue": [] }, { "Message": "Worked across {0} various Sprints", "Operation": "DISTINCT_COUNT", "OperandName": "sprintId", "OperandValue": [] }, { "Message": "Total {0} Release", "Operation": "DISTINCT_COUNT", "OperandName": "versionId", "OperandValue": [] } ], "uifilter": [ "key", "sprintId", "versionId" ], "cardDisplayProps": [ "issueKey", "author", "issueStatus", "priority" ], "excludeLabels": [] }, "GITHUB2": { "uuid": "uuid", "category": "SCM", "order": 5, "displayText": "Commits", "inSightsTimeX": "inSightsTimeX", "commitId": "commitId", "property": "categoryName", "toolName": "toolName", "commitStatus": "status", "author": "authorName", "repositoryName": "repoName", "timestamp": "inSightsTime", "message": "message", "gitCommiTime": "gitCommitTime", "uptool": [ "JIRA" ], "downtool": [ "JENKINS" ], "messages": [ { "Message": "Total {0} Developers ", "Operation": "DISTINCT_COUNT", "OperandName": "author", "OperandValue": [] } ], "uifilter": [ "commitId" ], "cardDisplayProps": [ "commitId", "message", "author", "inSightsTimeX" ], "excludeLabels": [ "FILE_CHANGE", "GIT_BRANCH" ] }, "JENKINS": { "uuid": "uuid", "category": "CI", "inSightsTimeX": "inSightsTimeX", "order": 6, "displayText": "Builds", "buildNumber": "buildNumber", "property": "categoryName", "resourcekey": "resourcekey", "toolName": "toolName", "buildStatus": "result", "projectName": "projectName", "timestamp": "inSightsTime", "environment": "environment", "buildUrl": "buildUrl", "scmcommitId": "scmcommitId", "jobName": "jobName", "uptool": [ "GITHUB2" ], "downtool": [ "SONAR", "NEXUS", "RUNDECK" ], "timelagParam": [ "startTime", "endTime" ], "messages": [ { "Message": "Build Information - {0} Passed, {1} Failed", "Operation": "SUM", "OperandName": "toolstatus", "OperandValue": [ "Success" ] } ], "uifilter": [ "buildNumber", "scmcommitId" ], "cardDisplayProps": [ "buildNumber", "buildUrl", "jobName", "buildStatus" ] }, "SONAR": { "uuid": "uuid", "category": "CODEQUALITY", "inSightsTimeX": "inSightsTimeX", "order": 7, "displayText": "Code Quality Executions", "analysisId": "analysisId", "branchName": "branchName", "property": "categoryName", "toolName": "toolName", "status": "status", "executionStatus": "sonarQualityGateStatus", "projectName": "projectName", "resourceKey": "resourcekey", "complexity": "complexity", "coverage": "coverage", "timestamp": "inSightsTime", "totalNo.OfTests": "tests", "testErrors": "test_errors", "code_coverage": "code_coverage", "sonarDuplicateCode": "sonarDuplicateCode", "jenkinsBuildNumber": "jenkinsBuildNumber", "metricDate": "metricdate", "vulnerabilities": "vulnerabilities", "uptool": [ "JENKINS" ], "downtool": [ "null" ], "uifilter": [ "analysisId", "projectName" ], "timelagParam": [ "startTime", "endTime" ], "cardDisplayProps": [ "analysisId", "projectName", "status" ], "messages": [ { "Message": "Sonar Executions - {0} Success, {1} Failed", "Operation": "SUM", "OperandName": "toolstatus", "OperandValue": [ "OK" ] } ] }, "NEXUS":{ "uuid":"uuid", "category":"ARTIFACTMANAGEMENT", "inSightsTimeX":"inSightsTimeX", "order":6, "displayText":" Total Artifacts", "repoName":"repoName", "jenkinsBuildNumber":"jenkinsBuildNumber", "property":"categoryName", "toolName":"toolName", "toolstatus":"status", "timestamp":"inSightsTime", "artifactName":"artifactName", "uptool":[ "JENKINS" ], "downtool":[ "null" ], "startTime":"startTime", "endTime":"endTime", "timelagParam":[ "startTime", "endTime" ], "uifilter":[ "jenkinsBuildNumber" ], "cardDisplayProps":[ "repoName", "jenkinsBuildNumber", "artifactName", "toolstatus" ], "messages":[ { "Message":"Nexus - {0} Success, {1} Failed", "Operation":"SUM", "OperandName":"toolstatus", "OperandValue":[ "succeeded" ] } ] }, "RUNDECK":{ "uuid":"uuid", "category":"DEPLOYMENT", "inSightsTimeX":"inSightsTimeX", "order":7, "displayText":"Total Deployment", "executionId":"run_ExecutionId", "jenkinsBuildNumber":"jenkinsBuildNumber", "property":"categoryName", "projectName":"run_ProjectName", "phase":"Deployment", "toolName":"toolName", "toolstatus":"status", "author":"run_User", "timestamp":"inSightsTime", "environment":"environment", "uptool":[ "JENKINS" ], "downtool":[ "null" ], "startTime":"startTime", "endTime":"endTime", "timelagParam":[ "startTime", "endTime" ], "messages":[ { "Message":"Deployment - {0} Successful Deployments, {1} Failed Deployments", "Operation":"SUM", "OperandName":"toolstatus", "OperandValue":[ "succeeded" ] } ], "uifilter":[ "jenkinsBuildNumber" ], "cardDisplayProps":[ "environment", "jenkinsBuildNumber", "toolstatus" ] }, "QTEST":{ "uuid":"uuid", "category":"ALM", "inSightsTimeX":"inSightsTimeX", "order":8, "displayText":"Test Executions", "module":"module", "requirement_id":"requirement_id", "projectName":"projectName", "property":"categoryName", "toolName":"toolName", "toolstatus":"status", "timestamp":"inSightsTime", "uptool":[ "JIRA" ], "downtool":[ "null" ], "startTime":"startTime", "endTime":"endTime", "timelagParam":[ "startTime", "endTime" ], "uifilter":[ "requirement_id" ], "cardDisplayProps":[ "requirement_id" ] } }

 

Traceability.json file is divided into three sections :

Pipeline Properties . (Mandatory Properties)

  1. uuid : uuid of the neo4j node.

  2. order : the order needs to be set to each tool in order to maintain sequence in pipeline view the order is integer value for ex( order:1,2,3....etc).

  3. toolName:  toolname of the node .

  4. issueType: type of issue (for ALM tools).

  5. epicKey: epic key (for ALM tools).

  6. toolstatus : toolstatus of the node.

  7. property: category name in neo4j.

  8. timestamp : Insights Time is epoc format ,  for ex ( "timestamp": "inSightsTime") 

  9. uptool:   JsonArray maintaining parent relationship for ex (for JENKINS uptool can be GIT and is mentioned as uptool:["GIT"].

  10. downtool: JsonArray maintaining child relationship for ex (for JENKINS downtool can be SONAR and RUNDECK and is mentioned as downtool:["SONAR","RUNDECK"].

  11. inSightsTimeX: this is Insights Time.

  12. author: auther name (Mandatory for the SCM category optional for other categories)

Summary Info Properties (Mandatory Property for summary information display )

  1. message : array of message objects having 4 properties.

    1. Message : this is standard message shown on the screen , currently 3 standards messages are being supported.

      1. Commit Information - Commits performed over a period of {0} by {1} unique developer(s) (To be part of any SCM tool)

      2. Build Information - {0} Passed {1} Failed (To be part of any build tool)

      3. Deployment - {0} Successful Deployments {1} Failed Deployments (To be part of any deployment tool

    2. Operation : this is aggregation function name currently there are 2 operations supported .

      1. SUM : this operation is used to sum based on provided parameters.

      2. TIMEDIFF : this operation is used to calculate the diff in timestamp with provided input (To be part of SCM category)

    3. OperandName: this is the name of the property in datamodel on which the operation is performed for ex( if operation is TIMEDIFF and OperandName is timestamp then TIMEDIFF is calculated on timestamp )

    4. OperandValue: this is mandatory field for the SUM operation for ex ( Message Clause is : Deployment - {0} Successful Deployments {1} Failed Deployments and Operation is SUM and OperandName is Success then it is calculate the no of nodes having Success status and it value gets replaced in first place {0} and Total - Success nodes gets replaced in {1} 

UIFilter Properties (Mandatory Properties displayed in dropdown )

uifilter : Array of neo4j properties for ex (uifilter for the JENKINS could be "uifilter":["buildNumber","projectName"] meaning buildNumber and projectName is displayed on the UI dropdown

cardDisplayProps (Mandatory properties displayed on the card in traceability UI)

                 a. it is json array mentioned in the traceability config holding list of properties (note that these properties name must match the traceability config properties)

excludeLabels : List of labels whose data should not be visible on UI 

UI Dashboard

  • From the first dropdown select the tool name .( For example - Jira as shown below)

  • From the second drop down select the property for the selected tool (this dropdown is loaded from the Traceability.Json uifilter property)

  • Enter the value for which you want to view traceability

  • Click on the submit button 

  • First 'Summary' tab is shown with textual inferences as well as average handover time between tool.

  • Click on 'Pipeline' Tab for pipeline view

  • Click on each tool name to get all records for that tool, User also can search specific record if needed in pop up

  • Click on any tile to drill down further  

  • Click on more info of each card to show all properties of that tile 

Back to Top

©2021 Cognizant, all rights reserved. US Patent 10,410,152