Merge pull request #2752 from MikeMcQuaid/remove-unused-analytics
analytics: remove unused analytics.
This commit is contained in:
		
						commit
						0e2b043c12
					
				@ -134,17 +134,15 @@ rescue Interrupt
 | 
			
		||||
  $stderr.puts # seemingly a newline is typical
 | 
			
		||||
  exit 130
 | 
			
		||||
rescue BuildError => e
 | 
			
		||||
  Utils::Analytics.report_exception(e)
 | 
			
		||||
  Utils::Analytics.report_build_error(e)
 | 
			
		||||
  e.dump
 | 
			
		||||
  exit 1
 | 
			
		||||
rescue RuntimeError, SystemCallError => e
 | 
			
		||||
  Utils::Analytics.report_exception(e)
 | 
			
		||||
  raise if e.message.empty?
 | 
			
		||||
  onoe e
 | 
			
		||||
  $stderr.puts e.backtrace if ARGV.debug?
 | 
			
		||||
  exit 1
 | 
			
		||||
rescue MethodDeprecatedError => e
 | 
			
		||||
  Utils::Analytics.report_exception(e)
 | 
			
		||||
  onoe e
 | 
			
		||||
  if e.issues_url
 | 
			
		||||
    $stderr.puts "If reporting this issue please do so at (not Homebrew/brew or Homebrew/core):"
 | 
			
		||||
@ -152,7 +150,6 @@ rescue MethodDeprecatedError => e
 | 
			
		||||
  end
 | 
			
		||||
  exit 1
 | 
			
		||||
rescue Exception => e
 | 
			
		||||
  Utils::Analytics.report_exception(e)
 | 
			
		||||
  onoe e
 | 
			
		||||
  if internal_cmd && defined?(OS::ISSUES_URL) &&
 | 
			
		||||
     !ENV["HOMEBREW_NO_AUTO_UPDATE"]
 | 
			
		||||
 | 
			
		||||
@ -278,7 +278,6 @@ fi
 | 
			
		||||
# shellcheck source=/dev/null
 | 
			
		||||
source "$HOMEBREW_LIBRARY/Homebrew/utils/analytics.sh"
 | 
			
		||||
setup-analytics
 | 
			
		||||
report-analytics-screenview-command
 | 
			
		||||
 | 
			
		||||
# Let user know we're still updating Homebrew if brew update --preinstall
 | 
			
		||||
# exceeds 3 seconds.
 | 
			
		||||
 | 
			
		||||
@ -271,14 +271,11 @@ class FormulaInstaller
 | 
			
		||||
    oh1 "Installing #{Formatter.identifier(formula.full_name)} #{options.join " "}" if show_header?
 | 
			
		||||
 | 
			
		||||
    if formula.tap && !formula.tap.private?
 | 
			
		||||
      category = "install"
 | 
			
		||||
      action = ([formula.full_name] + options).join(" ")
 | 
			
		||||
      Utils::Analytics.report_event(category, action)
 | 
			
		||||
      Utils::Analytics.report_event("install", action)
 | 
			
		||||
 | 
			
		||||
      if installed_on_request
 | 
			
		||||
        category = "install_on_request"
 | 
			
		||||
        action = ([formula.full_name] + options).join(" ")
 | 
			
		||||
        Utils::Analytics.report_event(category, action)
 | 
			
		||||
        Utils::Analytics.report_event("install_on_request", action)
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -61,22 +61,11 @@ module Utils
 | 
			
		||||
          ev: value)
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      def report_exception(exception, options = {})
 | 
			
		||||
        if exception.is_a?(BuildError) &&
 | 
			
		||||
           exception.formula.tap &&
 | 
			
		||||
           exception.formula.tap.installed? &&
 | 
			
		||||
           !exception.formula.tap.private?
 | 
			
		||||
          report_event("BuildError", exception.formula.full_name)
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        fatal = options.fetch(:fatal, true) ? "1" : "0"
 | 
			
		||||
        report(:exception,
 | 
			
		||||
          exd: exception.class.name,
 | 
			
		||||
          exf: fatal)
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      def report_screenview(screen_name)
 | 
			
		||||
        report(:screenview, cd: screen_name)
 | 
			
		||||
      def report_build_error(exception)
 | 
			
		||||
        return unless exception.formula.tap
 | 
			
		||||
        return unless exception.formula.tap.installed?
 | 
			
		||||
        return if exception.formula.tap.private?
 | 
			
		||||
        report_event("BuildError", exception.formula.full_name)
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
@ -66,56 +66,3 @@ setup-analytics() {
 | 
			
		||||
  export HOMEBREW_ANALYTICS_ID
 | 
			
		||||
  export HOMEBREW_ANALYTICS_USER_UUID
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
report-analytics-screenview-command() {
 | 
			
		||||
  [[ -n "$HOMEBREW_NO_ANALYTICS" || -n "$HOMEBREW_NO_ANALYTICS_THIS_RUN" ]] && return
 | 
			
		||||
 | 
			
		||||
  # Don't report commands that are invoked as part of other commands.
 | 
			
		||||
  [[ "$HOMEBREW_COMMAND_DEPTH" != 1 ]] && return
 | 
			
		||||
 | 
			
		||||
  # Don't report non-official commands.
 | 
			
		||||
  if ! [[ "$HOMEBREW_COMMAND" = "bundle"   ||
 | 
			
		||||
          "$HOMEBREW_COMMAND" = "services" ||
 | 
			
		||||
          -f "$HOMEBREW_LIBRARY/Homebrew/cmd/$HOMEBREW_COMMAND.rb"     ||
 | 
			
		||||
          -f "$HOMEBREW_LIBRARY/Homebrew/cmd/$HOMEBREW_COMMAND.sh"     ||
 | 
			
		||||
          -f "$HOMEBREW_LIBRARY/Homebrew/dev-cmd/$HOMEBREW_COMMAND.rb" ||
 | 
			
		||||
          -f "$HOMEBREW_LIBRARY/Homebrew/dev-cmd/$HOMEBREW_COMMAND.sh" ]]
 | 
			
		||||
  then
 | 
			
		||||
    return
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  # Don't report commands used mostly by our scripts and not users.
 | 
			
		||||
  case "$HOMEBREW_COMMAND" in
 | 
			
		||||
    --prefix|analytics|command|commands)
 | 
			
		||||
      return
 | 
			
		||||
      ;;
 | 
			
		||||
  esac
 | 
			
		||||
 | 
			
		||||
  local args=(
 | 
			
		||||
    --max-time 3
 | 
			
		||||
    --user-agent "$HOMEBREW_USER_AGENT_CURL"
 | 
			
		||||
    --data v=1
 | 
			
		||||
    --data aip=1
 | 
			
		||||
    --data t=screenview
 | 
			
		||||
    --data tid="$HOMEBREW_ANALYTICS_ID"
 | 
			
		||||
    --data cid="$HOMEBREW_ANALYTICS_USER_UUID"
 | 
			
		||||
    --data an="$HOMEBREW_PRODUCT"
 | 
			
		||||
    --data av="$HOMEBREW_VERSION"
 | 
			
		||||
    --data cd="$HOMEBREW_COMMAND"
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
  # Send analytics. Don't send or store any personally identifiable information.
 | 
			
		||||
  # http://docs.brew.sh/Analytics.html
 | 
			
		||||
  # https://developers.google.com/analytics/devguides/collection/protocol/v1/devguide#screenView
 | 
			
		||||
  # https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters
 | 
			
		||||
  if [[ -z "$HOMEBREW_ANALYTICS_DEBUG" ]]
 | 
			
		||||
  then
 | 
			
		||||
    "$HOMEBREW_CURL" https://www.google-analytics.com/collect \
 | 
			
		||||
      "${args[@]}" \
 | 
			
		||||
      --silent --output /dev/null &>/dev/null & disown
 | 
			
		||||
  else
 | 
			
		||||
    local url="https://www.google-analytics.com/debug/collect"
 | 
			
		||||
    echo "$HOMEBREW_CURL $url ${args[*]}"
 | 
			
		||||
    "$HOMEBREW_CURL" "$url" "${args[@]}"
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -18,14 +18,12 @@ Homebrew's analytics record some shared information for every event:
 | 
			
		||||
- If the Google Analytics anonymous IP setting is enabled, i.e. `1` (https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#aip)
 | 
			
		||||
- The Homebrew application name, e.g. `Homebrew` (https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#an)
 | 
			
		||||
- The Homebrew application version, e.g. `0.9.9` (https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#av)
 | 
			
		||||
- The Homebrew analytics hit type, e.g. `screenview` (https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#t)
 | 
			
		||||
- The Homebrew analytics hit type, e.g. `event` (https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#t)
 | 
			
		||||
 | 
			
		||||
Homebrew's analytics records the following different events:
 | 
			
		||||
 | 
			
		||||
- a `screenview` hit type with the official Homebrew command you have run (with arguments stripped), e.g. `brew list` (not `brew list foo` or any external commands except `bundle` and `services`)
 | 
			
		||||
- an `event` hit type with the `install` event category and the Homebrew formula from a non-private GitHub tap you have requested to install plus any used options, e.g. `wget --with-pcre` as the action and an event label e.g. `macOS 10.12, non-/usr/local, CI` to indicate the OS version, non-standard installation location and invocation as part of CI. This allows us to identify the formulae that need fixing and where more easily.
 | 
			
		||||
- an `event` hit type with the `BuildError` event category and the Homebrew formula that failed to install, e.g. `wget` as the action and an event label e.g. `macOS 10.12`
 | 
			
		||||
- an `exception` hit type with the `exception` event category and exception description of the exception name, e.g. `FormulaUnavailableError` and whether the exception was fatal e.g. `1`
 | 
			
		||||
 | 
			
		||||
You can also view all the information that is sent by Homebrew's analytics by setting `HOMEBREW_ANALYTICS_DEBUG=1` in your environment. Please note this will also stop any analytics from being sent.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user