diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1dec1f202ec975608d6904b7d839d9e7f553ec1b..cb60eea285f693f7275a938c3dee0a0d3c6658d4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,2 +1,4 @@
 # v2.17.2
 
+* **bugfix release** default values for metrics
+
diff --git a/satella/__init__.py b/satella/__init__.py
index 123e9fd79363fac3cfb591882acb0088b0ee4ba4..cee49d06e7639dee5ca4bb2034464d063f7c2c12 100644
--- a/satella/__init__.py
+++ b/satella/__init__.py
@@ -1 +1 @@
-__version__ = '2.17.2a1'
+__version__ = '2.17.2'
diff --git a/satella/instrumentation/metrics/metric_types/simple.py b/satella/instrumentation/metrics/metric_types/simple.py
index eae3726c69fc721b175576d46e12e7ca62872ad9..03c844dc5f587af4fcc73e7077b54d9154ae90ba 100644
--- a/satella/instrumentation/metrics/metric_types/simple.py
+++ b/satella/instrumentation/metrics/metric_types/simple.py
@@ -11,10 +11,11 @@ class SimpleMetric(EmbeddedSubmetrics):
 
     CLASS_NAME = 'string'
     CONSTRUCTOR = str
+    DEFAULT_VALUE = ''
 
     def __init__(self, *args, **kwargs):
         super().__init__(*args, **kwargs)
-        self.data = None  # type: tp.Any
+        self.data = self.DEFAULT_VALUE  # type: tp.Any
 
     def _handle(self, value, **labels) -> None:
         if self.embedded_submetrics_enabled or labels:
@@ -33,9 +34,11 @@ class SimpleMetric(EmbeddedSubmetrics):
 class IntegerMetric(SimpleMetric):
     CLASS_NAME = 'int'
     CONSTRUCTOR = int
+    DEFAULT_VALUE = 0
 
 
 @register_metric
 class FloatMetric(SimpleMetric, MeasurableMixin):
     CLASS_NAME = 'float'
     CONSTRUCTOR = float
+    DEFAULT_VALUE = 0.0
diff --git a/tests/test_coding/test_concurrent.py b/tests/test_coding/test_concurrent.py
index 49db407262c6eb812335a6b05114fe17d0ef3fb1..cdbff9c64b67cc2a9594b6608e61e09856522ef0 100644
--- a/tests/test_coding/test_concurrent.py
+++ b/tests/test_coding/test_concurrent.py
@@ -485,15 +485,16 @@ class TestConcurrent(unittest.TestCase):
     @unittest.skipUnless(sys.implementation.name == 'cpython', 'Does not work on PyPy :(')
     def test_condition(self):
         dct = {'a': False}
+        slf = self
         cond = Condition()
         interlock_cond = Condition()
 
         class MyThread(TerminableThread):
-            def run(self2) -> None:
-                self2.safe_sleep(-2)
-                self2.safe_sleep(0.5)
+            def run(self) -> None:
+                self.safe_sleep(-2)
+                self.safe_sleep(0.5)
                 interlock_cond.notify()
-                self.assertRaises(WouldWaitMore, lambda: cond.wait(timeout=0.5))
+                slf.assertRaises(WouldWaitMore, lambda: cond.wait(timeout=0.5))
                 cond.wait(timeout=0.5, dont_raise=True)
                 cond.wait()
                 dct['a'] = True
@@ -590,7 +591,6 @@ class TestConcurrent(unittest.TestCase):
 
         mtt = MyTerminableThread()
         mtt.start()
-        a = mtt.a
         time.sleep(0.3)
         self.assertIn(mtt.a, (1, 2))
         self.assertFalse(mtt.overrun)
diff --git a/tests/test_instrumentation/test_metrics/test_metrics.py b/tests/test_instrumentation/test_metrics/test_metrics.py
index d64ee8c25bae91f43e825fb90a50eacd2ccc4422..df00b53979a20bcee261f072d869e0cd4ff0c116 100644
--- a/tests/test_instrumentation/test_metrics/test_metrics.py
+++ b/tests/test_instrumentation/test_metrics/test_metrics.py
@@ -29,6 +29,12 @@ class TestMetric(unittest.TestCase):
         kid = choose('.kid', data)
         self.assertIsNone(kid)
 
+    def test_default_float(self):
+        met = getMetric('test.float', 'float')
+        data = met.to_metric_data()
+        v = choose('', data)
+        self.assertEqual(v.value, 0.0)
+
     def test_uptime_metric(self):
         up_metric = getMetric('uptime.metric', 'uptime')
         time.sleep(1)