github.com/ddev/ddev@v1.23.2-0.20240519125000-d824ffe36ff3/pkg/ddevapp/global_dotddev_assets/commands/web/blackfire (about)

     1  #!/bin/bash
     2  
     3  #ddev-generated: Remove this line to take over this script
     4  ## Description: Enable or disable blackfire.io profiling
     5  ## Usage: blackfire start|stop|on|off|enable|disable|true|false|status
     6  ## Example: "ddev blackfire" (default is "on"), "ddev blackfire off", "ddev blackfire on", "ddev blackfire status"
     7  ## ExecRaw: false
     8  ## Flags: []
     9  ## AutocompleteTerms: ["start","stop","on","off","enable","disable","status"]
    10  
    11  function enable {
    12    if [ -z ${BLACKFIRE_SERVER_ID} ] || [ -z ${BLACKFIRE_SERVER_TOKEN} ]; then
    13      echo "BLACKFIRE_SERVER_ID and BLACKFIRE_SERVER_TOKEN environment variables must be set" >&2
    14      echo "See docs for how to set in global or project config" >&2
    15      echo "For example, ddev config global --web-environment-add=BLACKFIRE_SERVER_ID=<id>,BLACKFIRE_SERVER_TOKEN=<token>"
    16      exit 1
    17    fi
    18    phpdismod xhprof xdebug
    19    phpenmod blackfire
    20    killall -USR2 php-fpm && killall -HUP nginx
    21    # Can't use killall here because it kills this process!
    22    pid=$(ps -ef | awk '$8~/^blackfire.*/ { print $2 }' 2>/dev/null)
    23    if [ "${pid}" != "" ]; then kill $pid; fi
    24    nohup blackfire agent:start --log-level=4 >/tmp/blackfire_nohup.out 2>&1 &
    25    sleep 1
    26    echo "Enabled blackfire PHP extension and started blackfire agent"
    27    exit
    28  }
    29  function disable {
    30    phpdismod blackfire
    31    killall -USR2 php-fpm
    32    # Can't use killall here because it kills this process!
    33    pid=$(ps -ef | awk '$8~/^blackfire.*/ { print $2 }' 2>/dev/null)
    34    if [ "${pid}" != "" ]; then kill ${pid}; fi
    35    echo "Disabled blackfire PHP extension and stopped blackfire agent"
    36    exit
    37  }
    38  
    39  
    40  if [ $# -eq 0 ] ; then
    41    enable
    42  fi
    43  
    44  case $1 in
    45    on|true|enable|start)
    46      disable_xdebug
    47      enable
    48      ;;
    49    off|false|disable|stop)
    50      disable
    51      ;;
    52    status)
    53      php --version | grep "with blackfire" >/dev/null 2>&1
    54      phpstatus=$?
    55      # Can't use killall here because it kills this process!
    56      agentstatus=$(ps -ef | awk '$8~/^blackfire.*/ { print $2 }' 2>/dev/null)
    57      if [ ${phpstatus} -eq 0 ]; then echo "blackfire PHP extension enabled"; else echo "blackfire PHP extension disabled"; fi
    58      if [ "${agentstatus}" != "" ]; then echo "blackfire agent running"; else echo "blackfire agent not running"; fi
    59      if [ ${phpstatus} -eq 0 ]; then printf "probe version %s\n" "$(php -v | awk  -F '[ ,\~]+' '/blackfire/{ print $4; }')"; fi
    60      printf "blackfire version %s\n" "$(blackfire version | awk '{print $3;}')"
    61      ;;
    62  
    63    *)
    64      echo "Invalid argument: $1"
    65      ;;
    66  esac