diff --git a/src/Yam/DataSource.hs b/src/Yam/DataSource.hs
--- a/src/Yam/DataSource.hs
+++ b/src/Yam/DataSource.hs
@@ -60,6 +60,7 @@
   { datasource :: LoggingT IO DataSource
   , migration  :: DB (LoggingT IO) ()
   , dbtype     :: T.Text
+  , check      :: DataSource -> IO HealthStatus
   }
 -- SqlPersistT ~ ReaderT SqlBackend
 type DB = SqlPersistT
@@ -91,11 +92,11 @@
   withRunInIO $ \run -> withResource pool $ run . \c -> runSqlConn a c { connLogFunc = logger }
 
 datasourceMiddleware :: DataSourceProvider -> AppMiddleware a (DataSource ': a)
-datasourceMiddleware DataSourceProvider{..} = AppMiddleware $ \c m f -> askLoggerIO >>= \lc ->
+datasourceMiddleware DataSourceProvider{..} = AppMiddleware $ \c m h f -> askLoggerIO >>= \lc ->
   liftIO $ bracket
     (runLoggingT datasource lc)
     destroyAllResources
-    (\ds -> runLoggingT (f (ds :. c) m) lc)
+    (\ds -> runLoggingT (f (ds :. c) m (mergeHealth (check ds) "datasource" h)) lc)
 
 
 
diff --git a/yam-datasource.cabal b/yam-datasource.cabal
--- a/yam-datasource.cabal
+++ b/yam-datasource.cabal
@@ -1,6 +1,6 @@
 cabal-version: 1.12
 name: yam-datasource
-version: 0.6.0
+version: 0.6.1
 license: BSD3
 license-file: LICENSE
 copyright: (c) Daniel YU
@@ -41,8 +41,8 @@
         persistent >=2.8.0 && <2.11,
         resource-pool >=0.2.3.2 && <0.3,
         resourcet >=1.2.2 && <1.3,
-        salak >=0.2.9 && <0.3,
+        salak >=0.2.9.3 && <0.3,
         servant-server ==0.16.*,
         text >=1.2.3.1 && <1.3,
         unliftio-core >=0.1.2.0 && <0.2,
-        yam >=0.6.0 && <0.7
+        yam >=0.6.1 && <0.7
