blob: fd2248adddae233d06b75c360f458d9abf747413 [file] [log] [blame]
#!/usr/bin/env bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# extracts information from the host environment that is useful for
# troubleshooting Apache Metron deployments
#
CWD="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# extract metron version from the pom
METRON_VERSION=`cat $CWD/../../pom.xml | grep "<version>" | head -1 | sed -ne '/version/{s/.*<version>\(.*\)<\/version>.*/\1/p;q;}'`
echo "Metron $METRON_VERSION"
# is this a git repo?
IS_GIT_REPO=`git rev-parse --is-inside-work-tree`
if [ "$IS_GIT_REPO" == "true" ]; then
# current branch
echo "--"
git branch | grep "*"
# last commit
echo "--"
git --no-pager log -n 1
# local changes since last commit
echo "--"
git --no-pager diff --stat
fi
# ansible
echo "--"
ansible --version
# vagrant
echo "--"
vagrant --version
# python
echo "--"
python --version 2>&1
# maven
echo "--"
mvn --version
# docker
echo "--"
docker --version
if docker info 2>&1 | grep -q 'Cannot connect to the Docker daemon'
then
echo "WARNING: Docker daemon is not running"
fi
# node
echo "--"
echo "node"
node --version
# npm
echo "--"
echo "npm"
npm --version
# C++ compiler
echo "--"
if [[ $(command -v g++) && $(g++ --version 2>/dev/null) ]]; then
g++ --version
# check C++11 compliance
echo "--"
OBJFILE=/tmp/test
CPPFILE=/tmp/test.cpp
cat > $CPPFILE <<- EOM
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!" << endl;
return 0;
}
EOM
g++ -std=c++11 $CPPFILE -o $OBJFILE &>/dev/null
if [ $? -eq 0 ]; then
echo "Compiler is C++11 compliant"
else
echo "Warning: Compiler is NOT C++11 compliant"
fi
rm -f $CPPFILE $OBJFILE
elif [[ $(command -v g++) ]]; then
echo "Warning: g++ not properly configured"
else
echo "Warning: g++ not found"
fi
# operating system
echo "--"
uname -a
# system resources
echo "--"
case "${OSTYPE}" in
linux*)
cat /proc/meminfo | grep -i MemTotal | awk '{print "Total System Memory = " $2/1024 " MB"}'
cat /proc/cpuinfo | egrep 'model\ name' | uniq | cut -d: -f2 | awk '{print "Processor Model:" $0}'
cat /proc/cpuinfo | egrep 'cpu\ MHz' | uniq | cut -d: -f2 | awk '{print "Processor Speed:" $0 " MHz"}'
cat /proc/cpuinfo | grep -i '^processor' | wc -l | awk '{print "Total Physical Processors: " $0}'
cat /proc/cpuinfo | grep -i cores | cut -d: -f2 | awk '{corecount+=$1} END {print "Total cores: " corecount}'
echo "Disk information:"
df -h | grep "^/"
if [[ $(egrep '(vmx|svm)' /proc/cpuinfo) ]]; then
echo "This CPU appears to support virtualization"
else
echo "This CPU may not support virtualization"
fi
;;
darwin*)
sysctl hw.memsize | awk '{print "Total System Memory = " $2/1048576 " MB"}'
sysctl machdep.cpu | grep 'machdep.cpu.brand_string' | cut -d: -f2 | cut -d\@ -f1 | awk '{print "Processor Model:" $0}'
sysctl machdep.cpu | grep 'machdep.cpu.brand_string' | cut -d: -f2 | cut -d\@ -f2 | awk '{print "Processor Speed:" $0}'
sysctl hw.physicalcpu | cut -d: -f2 | awk '{print "Total Physical Processors:" $0}'
sysctl machdep.cpu | grep 'machdep.cpu.core_count' | cut -d: -f2 | cut -d\@ -f2 | awk '{print "Total cores:" $0}'
echo "Disk information:"
df -h | grep "^/"
if [[ $(sysctl kern.hv_support | awk -F' ' '{print $2}') == "1" && $(sysctl -a | grep machdep.cpu.features | grep VMX) ]]; then
echo "This CPU appears to support virtualization"
else
echo "This CPU may not support virtualization"
fi
;;
*)
echo "Unable to detect system resources for ${OSTYPE}"
;;
esac