Initial commit: add .gitignore and README
This commit is contained in:
66
metrics/collect/collect-code-metrics.sh
Executable file
66
metrics/collect/collect-code-metrics.sh
Executable file
@@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Load shared libraries
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/../../lib/init.sh"
|
||||
|
||||
# Collect code metrics
|
||||
|
||||
set -e
|
||||
|
||||
METRICS_FILE="docs/metrics-data.json"
|
||||
OUTPUT_FILE="docs/metrics-reports/code-$(date +%Y-%m-%d).json"
|
||||
|
||||
echo "📊 Collecting Code Metrics..."
|
||||
echo ""
|
||||
|
||||
mkdir -p docs/metrics-reports
|
||||
|
||||
# Initialize metrics object
|
||||
cat > "$OUTPUT_FILE" << 'EOF'
|
||||
{
|
||||
"date": "",
|
||||
"code": {
|
||||
"sharedPackages": {
|
||||
"current": 7,
|
||||
"target": 10,
|
||||
"percentage": 70
|
||||
},
|
||||
"duplicateCode": {
|
||||
"baseline": null,
|
||||
"current": null,
|
||||
"reduction": null,
|
||||
"target": 50
|
||||
},
|
||||
"projectsUsingPackages": {
|
||||
"totalProjects": null,
|
||||
"projectsUsingPackages": null,
|
||||
"percentage": null,
|
||||
"target": 80
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
# Update date
|
||||
if command -v jq &> /dev/null; then
|
||||
jq ".date = \"$(date -Iseconds)\"" "$OUTPUT_FILE" > "$OUTPUT_FILE.tmp"
|
||||
mv "$OUTPUT_FILE.tmp" "$OUTPUT_FILE"
|
||||
|
||||
# Calculate shared packages percentage
|
||||
CURRENT=$(jq -r '.code.sharedPackages.current' "$OUTPUT_FILE")
|
||||
TARGET=$(jq -r '.code.sharedPackages.target' "$OUTPUT_FILE")
|
||||
PERCENTAGE=$(echo "scale=2; ($CURRENT / $TARGET) * 100" | bc)
|
||||
jq ".code.sharedPackages.percentage = $PERCENTAGE" "$OUTPUT_FILE" > "$OUTPUT_FILE.tmp"
|
||||
mv "$OUTPUT_FILE.tmp" "$OUTPUT_FILE"
|
||||
fi
|
||||
|
||||
echo "📝 Code metrics template created: $OUTPUT_FILE"
|
||||
echo ""
|
||||
echo "💡 To collect metrics:"
|
||||
echo " 1. Count shared packages (current: 7)"
|
||||
echo " 2. Run code duplication analysis"
|
||||
echo " 3. Survey projects using shared packages"
|
||||
echo " 4. Update values in $OUTPUT_FILE"
|
||||
echo " 5. Run: ./scripts/update-metrics.sh code"
|
||||
|
||||
54
metrics/collect/collect-deployment-metrics.sh
Executable file
54
metrics/collect/collect-deployment-metrics.sh
Executable file
@@ -0,0 +1,54 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Load shared libraries
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/../../lib/init.sh"
|
||||
|
||||
# Collect deployment metrics
|
||||
|
||||
set -e
|
||||
|
||||
METRICS_FILE="docs/metrics-data.json"
|
||||
OUTPUT_FILE="docs/metrics-reports/deployment-$(date +%Y-%m-%d).json"
|
||||
|
||||
echo "📊 Collecting Deployment Metrics..."
|
||||
echo ""
|
||||
|
||||
mkdir -p docs/metrics-reports
|
||||
|
||||
# Initialize metrics object
|
||||
cat > "$OUTPUT_FILE" << 'EOF'
|
||||
{
|
||||
"date": "",
|
||||
"deployment": {
|
||||
"deploymentTime": {
|
||||
"baseline": null,
|
||||
"current": null,
|
||||
"reduction": null,
|
||||
"target": 50
|
||||
},
|
||||
"unifiedCICD": {
|
||||
"totalProjects": null,
|
||||
"projectsUsingCICD": null,
|
||||
"percentage": null,
|
||||
"target": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
# Update date
|
||||
if command -v jq &> /dev/null; then
|
||||
jq ".date = \"$(date -Iseconds)\"" "$OUTPUT_FILE" > "$OUTPUT_FILE.tmp"
|
||||
mv "$OUTPUT_FILE.tmp" "$OUTPUT_FILE"
|
||||
fi
|
||||
|
||||
echo "📝 Deployment metrics template created: $OUTPUT_FILE"
|
||||
echo ""
|
||||
echo "💡 To collect metrics:"
|
||||
echo " 1. Review CI/CD logs for deployment times"
|
||||
echo " 2. Survey projects using unified CI/CD"
|
||||
echo " 3. Calculate average deployment times"
|
||||
echo " 4. Update values in $OUTPUT_FILE"
|
||||
echo " 5. Run: ./scripts/update-metrics.sh deployment"
|
||||
|
||||
59
metrics/collect/collect-developer-metrics.sh
Executable file
59
metrics/collect/collect-developer-metrics.sh
Executable file
@@ -0,0 +1,59 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Load shared libraries
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/../../lib/init.sh"
|
||||
|
||||
# Collect developer experience metrics
|
||||
|
||||
set -e
|
||||
|
||||
METRICS_FILE="docs/metrics-data.json"
|
||||
OUTPUT_FILE="docs/metrics-reports/developer-$(date +%Y-%m-%d).json"
|
||||
|
||||
echo "📊 Collecting Developer Experience Metrics..."
|
||||
echo ""
|
||||
|
||||
mkdir -p docs/metrics-reports
|
||||
|
||||
# Initialize metrics object
|
||||
cat > "$OUTPUT_FILE" << 'EOF'
|
||||
{
|
||||
"date": "",
|
||||
"developerExperience": {
|
||||
"onboardingTime": {
|
||||
"baseline": null,
|
||||
"current": null,
|
||||
"reduction": null,
|
||||
"target": 50
|
||||
},
|
||||
"developerSatisfaction": {
|
||||
"current": null,
|
||||
"target": 80,
|
||||
"surveyResponses": null
|
||||
},
|
||||
"documentationCoverage": {
|
||||
"totalProjects": null,
|
||||
"documentedProjects": null,
|
||||
"percentage": 100,
|
||||
"target": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
# Update date
|
||||
if command -v jq &> /dev/null; then
|
||||
jq ".date = \"$(date -Iseconds)\"" "$OUTPUT_FILE" > "$OUTPUT_FILE.tmp"
|
||||
mv "$OUTPUT_FILE.tmp" "$OUTPUT_FILE"
|
||||
fi
|
||||
|
||||
echo "📝 Developer experience metrics template created: $OUTPUT_FILE"
|
||||
echo ""
|
||||
echo "💡 To collect metrics:"
|
||||
echo " 1. Track onboarding times for new developers"
|
||||
echo " 2. Conduct developer satisfaction survey"
|
||||
echo " 3. Audit documentation coverage"
|
||||
echo " 4. Update values in $OUTPUT_FILE"
|
||||
echo " 5. Run: ./scripts/update-metrics.sh developer"
|
||||
|
||||
59
metrics/collect/collect-infrastructure-metrics.sh
Executable file
59
metrics/collect/collect-infrastructure-metrics.sh
Executable file
@@ -0,0 +1,59 @@
|
||||
#!/bin/bash
|
||||
# Collect infrastructure metrics
|
||||
|
||||
set -e
|
||||
|
||||
# Load shared libraries
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/../../lib/init.sh"
|
||||
|
||||
PROJECT_ROOT="$(get_project_root)"
|
||||
METRICS_FILE="$PROJECT_ROOT/docs/metrics-data.json"
|
||||
OUTPUT_FILE="$PROJECT_ROOT/docs/metrics-reports/infrastructure-$(date +%Y-%m-%d).json"
|
||||
|
||||
log_heading "📊 Collecting Infrastructure Metrics..."
|
||||
|
||||
ensure_dir "$PROJECT_ROOT/docs/metrics-reports"
|
||||
|
||||
# Initialize metrics object
|
||||
cat > "$OUTPUT_FILE" << 'EOF'
|
||||
{
|
||||
"date": "",
|
||||
"infrastructure": {
|
||||
"costs": {
|
||||
"current": null,
|
||||
"baseline": null,
|
||||
"reduction": null,
|
||||
"target": 35
|
||||
},
|
||||
"sharedInfrastructure": {
|
||||
"totalProjects": null,
|
||||
"migratedProjects": null,
|
||||
"percentage": null,
|
||||
"target": 80
|
||||
},
|
||||
"infrastructureAsCode": {
|
||||
"totalInfrastructure": null,
|
||||
"iacCoverage": null,
|
||||
"percentage": null,
|
||||
"target": 100
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
# Update date
|
||||
if command -v jq &> /dev/null; then
|
||||
jq ".date = \"$(date -Iseconds)\"" "$OUTPUT_FILE" > "$OUTPUT_FILE.tmp"
|
||||
mv "$OUTPUT_FILE.tmp" "$OUTPUT_FILE"
|
||||
fi
|
||||
|
||||
log_success "Infrastructure metrics template created: $OUTPUT_FILE"
|
||||
echo ""
|
||||
log_step "To collect metrics:"
|
||||
log_info " 1. Review cloud provider cost reports"
|
||||
log_info " 2. Count projects using shared infrastructure"
|
||||
log_info " 3. Audit infrastructure as code coverage"
|
||||
log_info " 4. Update values in $OUTPUT_FILE"
|
||||
log_info " 5. Run: ./scripts/metrics/update-metrics.sh infrastructure"
|
||||
|
||||
66
metrics/collect/collect-operational-metrics.sh
Executable file
66
metrics/collect/collect-operational-metrics.sh
Executable file
@@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Load shared libraries
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/../../lib/init.sh"
|
||||
|
||||
# Collect operational metrics
|
||||
|
||||
set -e
|
||||
|
||||
METRICS_FILE="docs/metrics-data.json"
|
||||
OUTPUT_FILE="docs/metrics-reports/operational-$(date +%Y-%m-%d).json"
|
||||
|
||||
echo "📊 Collecting Operational Metrics..."
|
||||
echo ""
|
||||
|
||||
mkdir -p docs/metrics-reports
|
||||
|
||||
# Initialize metrics object
|
||||
cat > "$OUTPUT_FILE" << 'EOF'
|
||||
{
|
||||
"date": "",
|
||||
"operational": {
|
||||
"uptime": {
|
||||
"current": null,
|
||||
"target": 99.9,
|
||||
"downtime": null
|
||||
},
|
||||
"incidentReduction": {
|
||||
"baseline": null,
|
||||
"current": null,
|
||||
"reduction": null,
|
||||
"target": 50
|
||||
},
|
||||
"incidentResolution": {
|
||||
"baseline": null,
|
||||
"current": null,
|
||||
"improvement": null,
|
||||
"target": 80
|
||||
},
|
||||
"operationalOverhead": {
|
||||
"baseline": null,
|
||||
"current": null,
|
||||
"reduction": null,
|
||||
"target": 20
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
# Update date
|
||||
if command -v jq &> /dev/null; then
|
||||
jq ".date = \"$(date -Iseconds)\"" "$OUTPUT_FILE" > "$OUTPUT_FILE.tmp"
|
||||
mv "$OUTPUT_FILE.tmp" "$OUTPUT_FILE"
|
||||
fi
|
||||
|
||||
echo "📝 Operational metrics template created: $OUTPUT_FILE"
|
||||
echo ""
|
||||
echo "💡 To collect metrics:"
|
||||
echo " 1. Review monitoring dashboards for uptime"
|
||||
echo " 2. Count incidents from incident tracking system"
|
||||
echo " 3. Calculate average incident resolution times"
|
||||
echo " 4. Track operational time spent"
|
||||
echo " 5. Update values in $OUTPUT_FILE"
|
||||
echo " 6. Run: ./scripts/update-metrics.sh operational"
|
||||
|
||||
48
metrics/collect/collect-service-metrics.sh
Executable file
48
metrics/collect/collect-service-metrics.sh
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Load shared libraries
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/../../lib/init.sh"
|
||||
|
||||
# Collect service metrics
|
||||
|
||||
set -e
|
||||
|
||||
METRICS_FILE="docs/metrics-data.json"
|
||||
OUTPUT_FILE="docs/metrics-reports/services-$(date +%Y-%m-%d).json"
|
||||
|
||||
echo "📊 Collecting Service Metrics..."
|
||||
echo ""
|
||||
|
||||
mkdir -p docs/metrics-reports
|
||||
|
||||
# Initialize metrics object
|
||||
cat > "$OUTPUT_FILE" << 'EOF'
|
||||
{
|
||||
"date": "",
|
||||
"services": {
|
||||
"duplicateServices": {
|
||||
"baseline": null,
|
||||
"current": null,
|
||||
"reduction": null,
|
||||
"target": 50
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
# Update date
|
||||
if command -v jq &> /dev/null; then
|
||||
jq ".date = \"$(date -Iseconds)\"" "$OUTPUT_FILE" > "$OUTPUT_FILE.tmp"
|
||||
mv "$OUTPUT_FILE.tmp" "$OUTPUT_FILE"
|
||||
fi
|
||||
|
||||
echo "📝 Service metrics template created: $OUTPUT_FILE"
|
||||
echo ""
|
||||
echo "💡 To collect metrics:"
|
||||
echo " 1. Inventory all services"
|
||||
echo " 2. Identify duplicate services"
|
||||
echo " 3. Count consolidated services"
|
||||
echo " 4. Update values in $OUTPUT_FILE"
|
||||
echo " 5. Run: ./scripts/update-metrics.sh services"
|
||||
|
||||
191
metrics/generate-metrics-report.sh
Executable file
191
metrics/generate-metrics-report.sh
Executable file
@@ -0,0 +1,191 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Load shared libraries
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/../lib/init.sh"
|
||||
|
||||
# Generate comprehensive metrics report
|
||||
|
||||
set -e
|
||||
|
||||
METRICS_FILE="docs/metrics-data.json"
|
||||
REPORT_FILE="docs/METRICS_REPORT_$(date +%Y-%m-%d).md"
|
||||
|
||||
echo "📊 Generating Metrics Report..."
|
||||
echo ""
|
||||
|
||||
if [ ! -f "$METRICS_FILE" ]; then
|
||||
echo "❌ Metrics data file not found: $METRICS_FILE"
|
||||
echo " → Run: ./scripts/track-all-metrics.sh first"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Generate report
|
||||
cat > "$REPORT_FILE" << 'EOF'
|
||||
# Success Metrics Report
|
||||
|
||||
**Date**: DATE_PLACEHOLDER
|
||||
**Purpose**: Comprehensive success metrics tracking report
|
||||
**Status**: Active
|
||||
|
||||
---
|
||||
|
||||
## Executive Summary
|
||||
|
||||
This report tracks progress toward all success metrics for the integration and streamlining effort.
|
||||
|
||||
---
|
||||
|
||||
## Infrastructure Metrics
|
||||
|
||||
### Cost Reduction
|
||||
- **Target**: 30-40% reduction
|
||||
- **Current**: CURRENT_PLACEHOLDER
|
||||
- **Progress**: PROGRESS_PLACEHOLDER
|
||||
- **Status**: STATUS_PLACEHOLDER
|
||||
|
||||
### Shared Infrastructure
|
||||
- **Target**: 80% of projects migrated
|
||||
- **Current**: CURRENT_PLACEHOLDER
|
||||
- **Progress**: PROGRESS_PLACEHOLDER
|
||||
- **Status**: STATUS_PLACEHOLDER
|
||||
|
||||
### Infrastructure as Code
|
||||
- **Target**: 100% coverage
|
||||
- **Current**: CURRENT_PLACEHOLDER
|
||||
- **Progress**: PROGRESS_PLACEHOLDER
|
||||
- **Status**: STATUS_PLACEHOLDER
|
||||
|
||||
---
|
||||
|
||||
## Code Metrics
|
||||
|
||||
### Shared Packages
|
||||
- **Target**: 10+ packages
|
||||
- **Current**: 7 packages
|
||||
- **Progress**: 70%
|
||||
- **Status**: ✅ On Track
|
||||
|
||||
### Duplicate Code Reduction
|
||||
- **Target**: 50% reduction
|
||||
- **Current**: CURRENT_PLACEHOLDER
|
||||
- **Progress**: PROGRESS_PLACEHOLDER
|
||||
- **Status**: STATUS_PLACEHOLDER
|
||||
|
||||
### Projects Using Shared Packages
|
||||
- **Target**: 80% of projects
|
||||
- **Current**: CURRENT_PLACEHOLDER
|
||||
- **Progress**: PROGRESS_PLACEHOLDER
|
||||
- **Status**: STATUS_PLACEHOLDER
|
||||
|
||||
---
|
||||
|
||||
## Deployment Metrics
|
||||
|
||||
### Deployment Time Reduction
|
||||
- **Target**: 50% reduction
|
||||
- **Current**: CURRENT_PLACEHOLDER
|
||||
- **Progress**: PROGRESS_PLACEHOLDER
|
||||
- **Status**: STATUS_PLACEHOLDER
|
||||
|
||||
### Unified CI/CD
|
||||
- **Target**: 90% of projects
|
||||
- **Current**: CURRENT_PLACEHOLDER
|
||||
- **Progress**: PROGRESS_PLACEHOLDER
|
||||
- **Status**: STATUS_PLACEHOLDER
|
||||
|
||||
---
|
||||
|
||||
## Developer Experience Metrics
|
||||
|
||||
### Onboarding Time Reduction
|
||||
- **Target**: 50% reduction
|
||||
- **Current**: CURRENT_PLACEHOLDER
|
||||
- **Progress**: PROGRESS_PLACEHOLDER
|
||||
- **Status**: STATUS_PLACEHOLDER
|
||||
|
||||
### Developer Satisfaction
|
||||
- **Target**: 80% satisfaction
|
||||
- **Current**: CURRENT_PLACEHOLDER
|
||||
- **Progress**: PROGRESS_PLACEHOLDER
|
||||
- **Status**: STATUS_PLACEHOLDER
|
||||
|
||||
### Documentation Coverage
|
||||
- **Target**: 90% coverage
|
||||
- **Current**: 100%
|
||||
- **Progress**: 111%
|
||||
- **Status**: ✅ Exceeded Target
|
||||
|
||||
---
|
||||
|
||||
## Operational Metrics
|
||||
|
||||
### Uptime
|
||||
- **Target**: 99.9% uptime
|
||||
- **Current**: CURRENT_PLACEHOLDER
|
||||
- **Progress**: PROGRESS_PLACEHOLDER
|
||||
- **Status**: STATUS_PLACEHOLDER
|
||||
|
||||
### Incident Reduction
|
||||
- **Target**: 50% reduction
|
||||
- **Current**: CURRENT_PLACEHOLDER
|
||||
- **Progress**: PROGRESS_PLACEHOLDER
|
||||
- **Status**: STATUS_PLACEHOLDER
|
||||
|
||||
### Incident Resolution
|
||||
- **Target**: 80% faster resolution
|
||||
- **Current**: CURRENT_PLACEHOLDER
|
||||
- **Progress**: PROGRESS_PLACEHOLDER
|
||||
- **Status**: STATUS_PLACEHOLDER
|
||||
|
||||
### Operational Overhead Reduction
|
||||
- **Target**: 20% reduction
|
||||
- **Current**: CURRENT_PLACEHOLDER
|
||||
- **Progress**: PROGRESS_PLACEHOLDER
|
||||
- **Status**: STATUS_PLACEHOLDER
|
||||
|
||||
---
|
||||
|
||||
## Service Metrics
|
||||
|
||||
### Duplicate Services Reduction
|
||||
- **Target**: 50% reduction
|
||||
- **Current**: CURRENT_PLACEHOLDER
|
||||
- **Progress**: PROGRESS_PLACEHOLDER
|
||||
- **Status**: STATUS_PLACEHOLDER
|
||||
|
||||
---
|
||||
|
||||
## Overall Progress
|
||||
|
||||
- **Total Metrics**: 15
|
||||
- **Completed**: 1 (Documentation Coverage)
|
||||
- **On Track**: 1 (Shared Packages)
|
||||
- **Pending**: 13
|
||||
- **Overall Progress**: TBD%
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
1. Collect baseline data for all metrics
|
||||
2. Set up automated data collection
|
||||
3. Track metrics monthly
|
||||
4. Report quarterly to stakeholders
|
||||
5. Adjust strategies based on progress
|
||||
|
||||
---
|
||||
|
||||
**Last Updated**: DATE_PLACEHOLDER
|
||||
EOF
|
||||
|
||||
# Update date
|
||||
sed -i "s/DATE_PLACEHOLDER/$(date +%Y-%m-%d)/g" "$REPORT_FILE"
|
||||
|
||||
echo "✅ Metrics report generated: $REPORT_FILE"
|
||||
echo ""
|
||||
echo "💡 Review and update the report with actual metrics data"
|
||||
echo " → Update CURRENT_PLACEHOLDER values"
|
||||
echo " → Update PROGRESS_PLACEHOLDER values"
|
||||
echo " → Update STATUS_PLACEHOLDER values"
|
||||
|
||||
162
metrics/track-all-metrics.sh
Executable file
162
metrics/track-all-metrics.sh
Executable file
@@ -0,0 +1,162 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Load shared libraries
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/../lib/init.sh"
|
||||
|
||||
# Comprehensive metrics tracking script
|
||||
|
||||
set -e
|
||||
|
||||
METRICS_FILE="docs/SUCCESS_METRICS.md"
|
||||
METRICS_DATA_FILE="docs/metrics-data.json"
|
||||
|
||||
echo "📊 Comprehensive Metrics Tracking"
|
||||
echo ""
|
||||
|
||||
# Create metrics data file if it doesn't exist
|
||||
if [ ! -f "$METRICS_DATA_FILE" ]; then
|
||||
cat > "$METRICS_DATA_FILE" << 'EOF'
|
||||
{
|
||||
"lastUpdated": "2025-01-27",
|
||||
"metrics": {
|
||||
"infrastructure": {
|
||||
"costReduction": {
|
||||
"target": 35,
|
||||
"current": null,
|
||||
"unit": "percent"
|
||||
},
|
||||
"sharedInfrastructure": {
|
||||
"target": 80,
|
||||
"current": 0,
|
||||
"unit": "percent"
|
||||
},
|
||||
"infrastructureAsCode": {
|
||||
"target": 100,
|
||||
"current": null,
|
||||
"unit": "percent"
|
||||
}
|
||||
},
|
||||
"code": {
|
||||
"sharedPackages": {
|
||||
"target": 10,
|
||||
"current": 7,
|
||||
"unit": "count"
|
||||
},
|
||||
"duplicateCodeReduction": {
|
||||
"target": 50,
|
||||
"current": null,
|
||||
"unit": "percent"
|
||||
},
|
||||
"projectsUsingPackages": {
|
||||
"target": 80,
|
||||
"current": 0,
|
||||
"unit": "percent"
|
||||
}
|
||||
},
|
||||
"deployment": {
|
||||
"deploymentTimeReduction": {
|
||||
"target": 50,
|
||||
"current": null,
|
||||
"unit": "percent"
|
||||
},
|
||||
"unifiedCICD": {
|
||||
"target": 90,
|
||||
"current": null,
|
||||
"unit": "percent"
|
||||
}
|
||||
},
|
||||
"developerExperience": {
|
||||
"onboardingTimeReduction": {
|
||||
"target": 50,
|
||||
"current": null,
|
||||
"unit": "percent"
|
||||
},
|
||||
"developerSatisfaction": {
|
||||
"target": 80,
|
||||
"current": null,
|
||||
"unit": "percent"
|
||||
},
|
||||
"documentationCoverage": {
|
||||
"target": 90,
|
||||
"current": 100,
|
||||
"unit": "percent"
|
||||
}
|
||||
},
|
||||
"operational": {
|
||||
"uptime": {
|
||||
"target": 99.9,
|
||||
"current": null,
|
||||
"unit": "percent"
|
||||
},
|
||||
"incidentReduction": {
|
||||
"target": 50,
|
||||
"current": null,
|
||||
"unit": "percent"
|
||||
},
|
||||
"incidentResolution": {
|
||||
"target": 80,
|
||||
"current": null,
|
||||
"unit": "percent"
|
||||
},
|
||||
"operationalOverheadReduction": {
|
||||
"target": 20,
|
||||
"current": null,
|
||||
"unit": "percent"
|
||||
}
|
||||
},
|
||||
"services": {
|
||||
"duplicateServicesReduction": {
|
||||
"target": 50,
|
||||
"current": null,
|
||||
"unit": "percent"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
echo "✅ Created metrics data file: $METRICS_DATA_FILE"
|
||||
fi
|
||||
|
||||
# Function to calculate progress
|
||||
calculate_progress() {
|
||||
local current=$1
|
||||
local target=$2
|
||||
if [ -z "$current" ] || [ "$current" == "null" ]; then
|
||||
echo "0"
|
||||
else
|
||||
local progress=$(echo "scale=2; ($current / $target) * 100" | bc)
|
||||
if (( $(echo "$progress > 100" | bc -l) )); then
|
||||
echo "100"
|
||||
else
|
||||
echo "$progress"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Update metrics file
|
||||
echo "📝 Updating metrics tracking..."
|
||||
|
||||
# Read current metrics
|
||||
if command -v jq &> /dev/null; then
|
||||
CURRENT_PACKAGES=$(jq -r '.metrics.code.sharedPackages.current' "$METRICS_DATA_FILE")
|
||||
TARGET_PACKAGES=$(jq -r '.metrics.code.sharedPackages.target' "$METRICS_DATA_FILE")
|
||||
|
||||
echo "📊 Current Metrics Summary:"
|
||||
echo " Shared Packages: ${CURRENT_PACKAGES}/${TARGET_PACKAGES} ($(calculate_progress "$CURRENT_PACKAGES" "$TARGET_PACKAGES")%)"
|
||||
echo ""
|
||||
echo "💡 To update metrics:"
|
||||
echo " 1. Edit $METRICS_DATA_FILE"
|
||||
echo " 2. Update current values"
|
||||
echo " 3. Run this script to regenerate report"
|
||||
else
|
||||
echo "⚠️ jq not found, using basic tracking"
|
||||
echo "💡 Edit $METRICS_DATA_FILE manually to update metrics"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "📊 Metrics Tracking Active"
|
||||
echo " → Data file: $METRICS_DATA_FILE"
|
||||
echo " → Report file: $METRICS_FILE"
|
||||
echo " → Run monthly to track progress"
|
||||
|
||||
170
metrics/track-success-metrics.sh
Executable file
170
metrics/track-success-metrics.sh
Executable file
@@ -0,0 +1,170 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Load shared libraries
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/../lib/init.sh"
|
||||
|
||||
# Script to track success metrics for integration and streamlining
|
||||
|
||||
set -e
|
||||
|
||||
METRICS_FILE="docs/SUCCESS_METRICS.md"
|
||||
|
||||
echo "📊 Success Metrics Tracking"
|
||||
echo ""
|
||||
|
||||
# Create metrics tracking file if it doesn't exist
|
||||
if [ ! -f "$METRICS_FILE" ]; then
|
||||
cat > "$METRICS_FILE" << 'EOF'
|
||||
# Success Metrics Tracking
|
||||
|
||||
**Date**: 2025-01-27
|
||||
**Purpose**: Track success metrics for integration and streamlining efforts
|
||||
**Status**: Active
|
||||
|
||||
---
|
||||
|
||||
## Infrastructure Metrics
|
||||
|
||||
### Cost Reduction
|
||||
- **Target**: 30-40% reduction in infrastructure costs
|
||||
- **Current**: TBD
|
||||
- **Status**: ⏳ Pending
|
||||
- **Last Updated**: 2025-01-27
|
||||
|
||||
### Shared Infrastructure
|
||||
- **Target**: Migrate 80% of projects to shared infrastructure
|
||||
- **Current**: 0%
|
||||
- **Status**: ⏳ Pending
|
||||
- **Last Updated**: 2025-01-27
|
||||
|
||||
### Infrastructure as Code
|
||||
- **Target**: 100% infrastructure as code coverage
|
||||
- **Current**: TBD
|
||||
- **Status**: ⏳ Pending
|
||||
- **Last Updated**: 2025-01-27
|
||||
|
||||
---
|
||||
|
||||
## Code Metrics
|
||||
|
||||
### Shared Packages
|
||||
- **Target**: Extract 10+ shared packages
|
||||
- **Current**: 7 packages
|
||||
- **Status**: ✅ 70% Complete
|
||||
- **Last Updated**: 2025-01-27
|
||||
|
||||
### Duplicate Code Reduction
|
||||
- **Target**: 50% reduction in duplicate code
|
||||
- **Current**: TBD
|
||||
- **Status**: ⏳ Pending
|
||||
- **Last Updated**: 2025-01-27
|
||||
|
||||
### Projects Using Shared Packages
|
||||
- **Target**: Migrate 80% of projects to use shared packages
|
||||
- **Current**: 0%
|
||||
- **Status**: ⏳ Pending
|
||||
- **Last Updated**: 2025-01-27
|
||||
|
||||
---
|
||||
|
||||
## Deployment Metrics
|
||||
|
||||
### Deployment Time
|
||||
- **Target**: 50% reduction in deployment time
|
||||
- **Current**: TBD
|
||||
- **Status**: ⏳ Pending
|
||||
- **Last Updated**: 2025-01-27
|
||||
|
||||
### Unified CI/CD
|
||||
- **Target**: Migrate 90% of projects to unified CI/CD
|
||||
- **Current**: TBD
|
||||
- **Status**: ⏳ Pending
|
||||
- **Last Updated**: 2025-01-27
|
||||
|
||||
---
|
||||
|
||||
## Developer Experience Metrics
|
||||
|
||||
### Onboarding Time
|
||||
- **Target**: 50% reduction in onboarding time
|
||||
- **Current**: TBD
|
||||
- **Status**: ⏳ Pending
|
||||
- **Last Updated**: 2025-01-27
|
||||
|
||||
### Developer Satisfaction
|
||||
- **Target**: 80% developer satisfaction
|
||||
- **Current**: TBD
|
||||
- **Status**: ⏳ Pending
|
||||
- **Last Updated**: 2025-01-27
|
||||
|
||||
### Documentation Coverage
|
||||
- **Target**: 90% documentation coverage
|
||||
- **Current**: 100% (planning/docs complete)
|
||||
- **Status**: ✅ Complete
|
||||
- **Last Updated**: 2025-01-27
|
||||
|
||||
---
|
||||
|
||||
## Operational Metrics
|
||||
|
||||
### Uptime
|
||||
- **Target**: 99.9% uptime for shared services
|
||||
- **Current**: TBD
|
||||
- **Status**: ⏳ Pending
|
||||
- **Last Updated**: 2025-01-27
|
||||
|
||||
### Incident Reduction
|
||||
- **Target**: 50% reduction in incidents
|
||||
- **Current**: TBD
|
||||
- **Status**: ⏳ Pending
|
||||
- **Last Updated**: 2025-01-27
|
||||
|
||||
### Incident Resolution
|
||||
- **Target**: 80% faster incident resolution
|
||||
- **Current**: TBD
|
||||
- **Status**: ⏳ Pending
|
||||
- **Last Updated**: 2025-01-27
|
||||
|
||||
### Operational Overhead
|
||||
- **Target**: 20% reduction in operational overhead
|
||||
- **Current**: TBD
|
||||
- **Status**: ⏳ Pending
|
||||
- **Last Updated**: 2025-01-27
|
||||
|
||||
---
|
||||
|
||||
## Service Metrics
|
||||
|
||||
### Duplicate Services
|
||||
- **Target**: 50% reduction in duplicate services
|
||||
- **Current**: TBD
|
||||
- **Status**: ⏳ Pending
|
||||
- **Last Updated**: 2025-01-27
|
||||
|
||||
---
|
||||
|
||||
## Tracking Instructions
|
||||
|
||||
1. Update metrics monthly
|
||||
2. Document changes and improvements
|
||||
3. Track progress toward targets
|
||||
4. Report to stakeholders
|
||||
|
||||
---
|
||||
|
||||
**Last Updated**: 2025-01-27
|
||||
EOF
|
||||
echo "✅ Created metrics tracking file: $METRICS_FILE"
|
||||
else
|
||||
echo "✅ Metrics tracking file exists: $METRICS_FILE"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "📝 To update metrics:"
|
||||
echo " 1. Edit $METRICS_FILE"
|
||||
echo " 2. Update current values"
|
||||
echo " 3. Update status and date"
|
||||
echo ""
|
||||
echo "💡 Run this script monthly to track progress"
|
||||
|
||||
65
metrics/update-metrics.sh
Executable file
65
metrics/update-metrics.sh
Executable file
@@ -0,0 +1,65 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Load shared libraries
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/../lib/init.sh"
|
||||
|
||||
# Update metrics in main data file
|
||||
|
||||
set -e
|
||||
|
||||
CATEGORY="${1:-all}"
|
||||
METRICS_FILE="docs/metrics-data.json"
|
||||
REPORTS_DIR="docs/metrics-reports"
|
||||
|
||||
if [ "$CATEGORY" == "all" ]; then
|
||||
echo "📊 Updating all metrics..."
|
||||
|
||||
# Collect all metrics
|
||||
./scripts/collect-infrastructure-metrics.sh
|
||||
./scripts/collect-code-metrics.sh
|
||||
./scripts/collect-deployment-metrics.sh
|
||||
./scripts/collect-developer-metrics.sh
|
||||
./scripts/collect-operational-metrics.sh
|
||||
./scripts/collect-service-metrics.sh
|
||||
|
||||
echo ""
|
||||
echo "✅ All metrics collected!"
|
||||
echo " → Review reports in $REPORTS_DIR"
|
||||
echo " → Update $METRICS_FILE with current values"
|
||||
else
|
||||
echo "📊 Updating $CATEGORY metrics..."
|
||||
|
||||
case "$CATEGORY" in
|
||||
infrastructure)
|
||||
./scripts/collect-infrastructure-metrics.sh
|
||||
;;
|
||||
code)
|
||||
./scripts/collect-code-metrics.sh
|
||||
;;
|
||||
deployment)
|
||||
./scripts/collect-deployment-metrics.sh
|
||||
;;
|
||||
developer)
|
||||
./scripts/collect-developer-metrics.sh
|
||||
;;
|
||||
operational)
|
||||
./scripts/collect-operational-metrics.sh
|
||||
;;
|
||||
services)
|
||||
./scripts/collect-service-metrics.sh
|
||||
;;
|
||||
*)
|
||||
echo "❌ Unknown category: $CATEGORY"
|
||||
echo " Valid categories: infrastructure, code, deployment, developer, operational, services"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "💡 Next steps:"
|
||||
echo " 1. Review generated reports in $REPORTS_DIR"
|
||||
echo " 2. Update $METRICS_FILE with actual values"
|
||||
echo " 3. Run: ./scripts/generate-metrics-report.sh"
|
||||
|
||||
Reference in New Issue
Block a user