diff --git a/ee/config/metrics/license/20210204124831_license_md5.yml b/ee/config/metrics/license/20210204124831_license_md5.yml
index 85c1c9c302d016fd1f4dd99745e3ad5eb843ed4f..8b02a917fd1acca9dfba0703adb083b7c3801665 100644
--- a/ee/config/metrics/license/20210204124831_license_md5.yml
+++ b/ee/config/metrics/license/20210204124831_license_md5.yml
@@ -9,6 +9,7 @@ value_type: string
 status: data_available
 time_frame: none
 data_source: license
+instrumentation_class: 'LicenseMdFiveMetric'
 data_category: Standard
 distribution:
 - ee
diff --git a/ee/config/metrics/license/20210204124852_license_subscription_id.yml b/ee/config/metrics/license/20210204124852_license_subscription_id.yml
index 463a8a2fc231dee0fee23f8bcd30dd36df4b5952..3a1cf89a65eee0bf19656077e05a12c55bc03ff0 100644
--- a/ee/config/metrics/license/20210204124852_license_subscription_id.yml
+++ b/ee/config/metrics/license/20210204124852_license_subscription_id.yml
@@ -9,6 +9,7 @@ value_type: string
 status: data_available
 time_frame: none
 data_source: license
+instrumentation_class: 'ZuoraSubscriptionIdMetric'
 data_category: Standard
 distribution:
 - ee
diff --git a/ee/lib/gitlab/usage/metrics/instrumentations/license_md_five_metric.rb b/ee/lib/gitlab/usage/metrics/instrumentations/license_md_five_metric.rb
new file mode 100644
index 0000000000000000000000000000000000000000..ee601f180e3bc2c9ae9ff68c7543af6ff18019d8
--- /dev/null
+++ b/ee/lib/gitlab/usage/metrics/instrumentations/license_md_five_metric.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+module Gitlab
+  module Usage
+    module Metrics
+      module Instrumentations
+        class LicenseMdFiveMetric < ::Gitlab::Usage::Metrics::Instrumentations::GenericMetric
+          value do
+            ::License.current.md5
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/ee/lib/gitlab/usage/metrics/instrumentations/zuora_subscription_id_metric.rb b/ee/lib/gitlab/usage/metrics/instrumentations/zuora_subscription_id_metric.rb
new file mode 100644
index 0000000000000000000000000000000000000000..ba6c310e59eef21c47184f9882c8cfe99977ce82
--- /dev/null
+++ b/ee/lib/gitlab/usage/metrics/instrumentations/zuora_subscription_id_metric.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+module Gitlab
+  module Usage
+    module Metrics
+      module Instrumentations
+        class ZuoraSubscriptionIdMetric < ::Gitlab::Usage::Metrics::Instrumentations::GenericMetric
+          value do
+            ::License.current.subscription_id
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/ee/spec/lib/gitlab/usage/metrics/instrumentations/license_md_five_metric_spec.rb b/ee/spec/lib/gitlab/usage/metrics/instrumentations/license_md_five_metric_spec.rb
new file mode 100644
index 0000000000000000000000000000000000000000..2d95a47ac45d42502215cadd37d388b402eb97a0
--- /dev/null
+++ b/ee/spec/lib/gitlab/usage/metrics/instrumentations/license_md_five_metric_spec.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::Usage::Metrics::Instrumentations::LicenseMdFiveMetric do
+  it_behaves_like 'a correct instrumented metric value', { time_frame: 'none', data_source: 'ruby' } do
+    let(:expected_value) { Digest::MD5.hexdigest(::License.current.data) }
+  end
+end
diff --git a/ee/spec/lib/gitlab/usage/metrics/instrumentations/zuora_subscription_id_metric_spec.rb b/ee/spec/lib/gitlab/usage/metrics/instrumentations/zuora_subscription_id_metric_spec.rb
new file mode 100644
index 0000000000000000000000000000000000000000..29d658593c1ef05cc16c8156cdd8e3ca5dbaabeb
--- /dev/null
+++ b/ee/spec/lib/gitlab/usage/metrics/instrumentations/zuora_subscription_id_metric_spec.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::Usage::Metrics::Instrumentations::ZuoraSubscriptionIdMetric do
+  it_behaves_like 'a correct instrumented metric value', { time_frame: 'none', data_source: 'ruby' } do
+    let(:expected_value) { ::License.current.subscription_id }
+  end
+end
diff --git a/ee/spec/lib/gitlab/usage_data_metrics_spec.rb b/ee/spec/lib/gitlab/usage_data_metrics_spec.rb
new file mode 100644
index 0000000000000000000000000000000000000000..2b7ee015190d0bc4b01e78f63f7a9756bcc5e69c
--- /dev/null
+++ b/ee/spec/lib/gitlab/usage_data_metrics_spec.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::UsageDataMetrics do
+  describe '.uncached_data' do
+    subject { described_class.uncached_data }
+
+    around do |example|
+      described_class.instance_variable_set(:@definitions, nil)
+      example.run
+      described_class.instance_variable_set(:@definitions, nil)
+    end
+
+    before do
+      allow(ActiveRecord::Base.connection).to receive(:transaction_open?).and_return(false) # rubocop:disable Database/MultipleDatabases
+    end
+
+    context 'with instrumentation_class' do
+      it 'includes top level keys' do
+        expect(subject).to include(:license_md5)
+        expect(subject).to include(:license_subscription_id)
+      end
+    end
+  end
+end